31. 做登入與註冊功能
請幫我做使用者註冊與登入功能。註冊要有:Email、密碼、確認密碼,並檢查 Email 格式與密碼強度。登入後要能記住登入狀態,也要有登出和忘記密碼的入口。請用安全的方式處理密碼(不要用明碼存),並告訴我這部分你用了什麼機制、我還需要注意什麼。
帳號密碼牽涉安全,是最不該自己土法煉鋼的部分。明確要求 AI 用安全的既有方案,並請它說明,別讓它自己發明一套。
《零基礎學 Vibe Coding》讀者專區
從需求訪談到工具上線的完整流程
把方括號〔〕裡的內容換成你自己的情況,整段複製貼給 AI 就能用。
請幫我做使用者註冊與登入功能。註冊要有:Email、密碼、確認密碼,並檢查 Email 格式與密碼強度。登入後要能記住登入狀態,也要有登出和忘記密碼的入口。請用安全的方式處理密碼(不要用明碼存),並告訴我這部分你用了什麼機制、我還需要注意什麼。
帳號密碼牽涉安全,是最不該自己土法煉鋼的部分。明確要求 AI 用安全的既有方案,並請它說明,別讓它自己發明一套。
請幫我做一組〔資料名稱,例如:客戶資料〕的管理功能,包含四個基本操作:新增一筆、列出全部、修改某一筆與刪除某一筆。每筆資料的欄位有:〔欄位清單〕。刪除前要跳出確認,避免手滑誤刪。修改和新增用同一個表單。做好後給我一個簡單的管理頁面,可以看到全部資料並操作。
CRUD(增刪改查)是幾乎每個軟體的骨幹。學會用一句話交代這四件事,你就掌握了大半個後臺管理系統。
請幫我在〔某個列表,例如:文章列表〕加上搜尋功能。使用者在搜尋框輸入關鍵字,就即時篩選出〔要搜尋的欄位,例如:標題或內文〕包含該關鍵字的結果。搜尋不分大小寫,沒有結果時顯示找不到符合的項目的友善提示。搜尋框旁放一個清除按鈕,可以一鍵還原全部。
先做單一關鍵字即時篩選,就很夠用了。別一開始就想做那種很聰明的模糊搜尋,把基本款做穩再說。
請幫我的〔列表名稱〕加上篩選和排序。篩選:讓使用者可以依〔條件,例如:分類、狀態、日期區間〕縮小範圍,可以多個條件同時套用。排序:可以依〔欄位,例如:時間新到舊、價格低到高〕切換。篩選和排序要能疊加使用,並在畫面上清楚顯示目前套用了哪些條件,也能一鍵清除。
顯示目前套用了哪些條件,很重要。不然使用者篩到後來會忘記自己設了什麼,看到奇怪結果還以為壞了。
我的〔列表〕資料很多,一次全載入會太慢。請幫我改成〔分頁:底部有頁碼可以一頁一頁翻/無限捲動:捲到底自動載入下一批,擇一〕。每批顯示 〔20〕 筆。載入下一批時要有載入中的提示,全部載完時顯示已經到底了。請告訴我這兩種做法的差別,幫我確認我選的適合我的情況。
內容型網站(文章、貼文)適合無限捲動;需要精準找到第幾筆的後臺管理則適合分頁。選錯會讓使用者找資料找到抓狂。
請幫我做購物車功能。使用者可以把商品加入購物車、在購物車裡調整數量或移除、即時看到小計與總金額。購物車內容在重新整理或關掉再打開後還要記得(不能一刷新就清空)。右上角的購物車圖示要顯示目前有幾件商品。先做到「結帳」按鈕為止,實際付款下一步再處理。
刷新後購物車還記得,是新手最容易漏的體驗細節。先跟 AI 講清楚要保留狀態,不然使用者手滑重整就得重挑一輪。
我想讓使用者可以線上付款購買〔商品/課程〕,需要支援信用卡。請先不要寫串接程式,而是幫我規劃:常見的金流服務有哪些選擇、串接大概要經過哪些步驟、我需要準備什麼資料、有哪些安全與法規重點要注意。金鑰之類的機密資訊我會自己保管,請你只在需要填入的地方留清楚的〔佔位符〕(placeholder)提醒我。
金流牽涉錢和機密,第一步是搞懂流程,而不是急著貼程式。務必強調機密自己保管、只留佔位符,別把任何金鑰貼進對話。
請幫我做一個「當〔某事件,例如:使用者完成報名〕時,自動寄一封通知信」的功能。信件內容包含:〔要放的資訊,例如:報名項目、時間、聯絡方式〕,語氣親切專業。請規劃我需要用哪種寄信服務、要準備什麼設定,並把寄信的帳號密碼等機密留成〔佔位符〕,由我自己填。先給我一封信件內容的範本讓我確認文案。
先確認信件文案,再處理怎麼寄這件事。畢竟,文案是使用者真正會看到的東西,值得你花時間跟 AI 打磨語氣。
請幫我加一個匯出功能,讓使用者把〔某份資料,例如:訂單列表〕下載下來。CSV:包含這些欄位〔欄位清單〕,用 Excel 打開不會亂碼(請注意中文編碼)。PDF:排版乾淨、有標題和日期。匯出按鈕放在列表上方,如果使用者有套用篩選,就只匯出篩選後的結果。
中文匯出 CSV 最常見的災難,就是用 Excel 開就變亂碼。一定要特別跟 AI 點名這件事,請它處理好編碼。
請幫我的網站加上語言切換,支援〔繁體中文、英文〕。放一個語言切換的選單,切換後整個介面的文字都跟著變,並記住使用者的選擇。請把所有文字集中管理(不要寫死在各處),方便我之後新增語言或修改翻譯。先幫我把現有頁面的文字整理成一份對照表讓我填翻譯。
多語系的關鍵是文字集中管理。一開始就做對,日後加語言只要補一份對照表;做錯了就得滿場翻找散落各處的文字,很痛苦。
請幫我做權限分級。我有這幾種角色:〔例如:管理員、一般會員或訪客〕。各自的權限是:〔管理員可以管理所有資料;會員只能看和改自己的;訪客只能瀏覽公開內容〕。請確保沒有權限的人不只是看不到按鈕,就算他直接嘗試操作也會被擋下來。告訴我你怎麼確保這道防線是安全的。
新手常以為把按鈕藏起來,就叫做權限控制。務必強調就算硬闖也要擋住,因為藏起來的功能,懂的人還是有辦法直接呼叫。如果前端是餐廳的用餐區,後端就是廚房:客人看不到,但菜是那裡做出來的,食材也存在那裡。這一關談的是資料怎麼存、怎麼取、怎麼保護。名詞聽起來很硬,但你要做的還是老樣子:把我想存什麼、想拿什麼講清楚,AI 會幫你把廚房蓋好。
找不到一模一樣的沒關係,抓錯誤訊息的關鍵字對大方向就行。 完整清單與萬能救援句在卡關 FAQ。
401 Unauthorized 或 403 Forbidden我呼叫〔服務名〕的 API 時回 `401`(或 `403`)。請先幫我分清楚這兩個的差別,再帶我一步步排查:金鑰是不是有效、有沒有正確被送出、帳號權限夠不夠。我串接的方式大概是〔簡述,例如在前端 fetch、後端呼叫〕。
401 先查鑰匙對不對、有沒有帶,403 先查這個帳號有沒有這個權限?方向不同,別搞混。
429 Too Many Requests我呼叫〔服務名〕時出現 `429 Too Many Requests`。請幫我判斷是不是我的程式在短時間內打太多次(例如迴圈裡重複呼叫),並教我怎麼加上稍等再重試的機制,避免一直撞牆。相關程式碼:〔貼上〕
看到 429,先檢查是不是有段程式在迴圈裡不小心狂呼叫 API。修好迴圈通常比升級方案更該做。
API 金鑰失效或放錯位置我串接〔服務名〕一直失敗,感覺是 API 金鑰的問題。請帶我逐項檢查:金鑰有沒有複製完整(頭尾有沒有多空格)、放的環境變數名稱對不對、以及這個服務前端跟後端該用的金鑰是不是不同把。
複製金鑰時最容易頭尾多帶一個空格或換行。重新乾淨地複製一次,常常就好了。
金鑰不小心外洩(推上 GitHub 或貼出去了)我不小心把〔服務名〕的 API 金鑰外洩了(寫在程式碼裡推上了公開倉庫)。請按照緊急程度帶我處理:一、立刻去哪裡把這把金鑰作廢、重新產生一把;二、怎麼把金鑰改放到環境變數、不再寫死在程式裡;三、怎麼設定 .gitignore 避免再犯。
金鑰一旦外洩,「刪掉那行程式碼」是沒用的,因為歷史記錄還在。唯一的解法是「立刻作廢舊金鑰、重發新的」。這件事要第一時間做,別拖。
API 呼叫逾時(ETIMEDOUT / request timeout)我呼叫〔服務名〕的 API 一直逾時。請幫我排查:是對方服務本身慢/掛了,還是我這邊網址設定有問題,還是我一次要太多資料。教我怎麼分別確認,以及怎麼加上「逾時重試」讓它更穩。
先去那個服務的官方狀態頁(status page)看看是不是對方正處於掛掉的狀態?如果是對方的問題,你怎麼改都沒用,等它恢復就好。資料庫(Database)是你的程式存放資料的倉庫。這一類錯誤多半在說:倉庫連不上、倉庫的格局跟你程式想的不一樣、或你放進去的東西違反了倉庫的規矩。