VCA

用 AI 做一個登入系統

從零用 AI 做出安全的登入:註冊、登入、登出與「誰能看什麼」,以及新手最常踩的安全坑。

發布於 更新於 審閱於 閱讀約 2 分鐘編輯方針#實作指南#登入#安全
屬於路線CRM 路線

一句話解釋

登入系統=驗證「你是誰」+授權「你能做什麼」;用 AI 也要把安全規則講清楚,它才不會產生有洞的程式。

你會做出什麼

一個能註冊、登入、登出,並依角色控制權限的系統雛形,而且你知道哪些安全規則不能省。

先搞懂:登入其實是兩件事

很多人以為「登入」只是輸入帳號密碼。其實它是兩件事:驗證(你是誰)授權(你能做什麼)。驗證成功後,系統會發給你一張看不見的「通行證」,之後每次操作都帶著它,系統才知道是你、而且知道你有沒有資格做這件事。

這篇不教你背語法,而是教你怎麼跟 AI 描述需求,讓它產生的登入功能是安全的,而不是看起來會動、但一上線就被人繞過。

三條路:自己做、用平台、用第三方登入

做法適合要注意
自己做密碼登入想完全掌控、學原理密碼雜湊、Token 效期、防爆破都要自己顧
用 Auth 平台想快、又要安全綁定供應商;多半有免費額度
第三方登入(Google 等)降低註冊門檻仍要在自己這邊建立 session

新手最務實的選擇通常是「平台 Auth + 第三方登入」,把最容易出包的密碼保管交給專業的人,自己專注在「誰能看什麼」。

跟 AI 這樣說,它才不會給你有洞的程式

AI 很會寫「能動」的登入,但預設不一定安全。下指令時,明確要求這幾點:

  • 密碼一定要雜湊(用 bcrypt 或 argon2),絕不明文存進資料庫。
  • 登入後發的 Token / Session 要設效期,而且能被撤銷(例如登出、改密碼時失效)。
  • Token 放在 httpOnly cookie,不要放在前端 JavaScript 拿得到的地方。
  • 權限判斷一定在後端做,前端只負責「藏起按鈕」,不能當作安全防線。

把上面這段直接貼給 AI,當作「驗收標準」,再請它一步步實作。

架構圖

新手最常踩的坑

  • 明文存密碼:資料庫一外洩,所有人的密碼直接曝光。一定要雜湊。
  • Token 沒效期:被偷走就能一直用。設短效期 + 可撤銷。
  • 前端決定權限:把「是不是管理員」的判斷寫在畫面上,懂一點的人改一下就闖進後台。
  • Secret 寫進前端:API 金鑰、簽章密鑰一旦進到瀏覽器就等於公開。

下一步

常見問題

直接叫 AI 幫我做登入就好,為什麼還要懂這些?

AI 很會寫「能動」的登入,但預設不一定安全:可能明文存密碼、Token 沒效期、把權限判斷放前端。你不需要會寫,但要看得懂這些安全規則,才能把它們當「驗收標準」要求 AI,並檢查它有沒有做到。

自己做密碼登入,還是用 Google 登入比較安全?

對新手來說,用第三方登入(Google 等)或 Auth 平台通常更安全,因為最容易出包的「密碼保管」交給了專業的人。自己做不是不行,但密碼雜湊、防爆破、Token 管理都得自己顧好,門檻較高。

參考來源

  1. Authentication Cheat SheetOWASP
  2. Session Management Cheat SheetOWASP

CRM 路線 的下一步: 從表單到 CRM