Signed Token / JWT
簽章 Token(JWT)
01你是不是遇到這個 / THE SYMPTOM
我想讓使用者登入後不用每次都查資料庫驗身分,發一個「通行證」給他帶著就好;但我怕對方自己亂改通行證裡的內容(例如把自己改成管理員)。我不知道這種「帶得走又改不動」的憑證叫什麼。
↑ 如果你點頭了,你要的關鍵字就是 Signed Token / JWT。
02這是什麼 / DEFINITION
用伺服器的密鑰對 token 內容做數位簽章,讓 token 可以交給用戶端保存,但任何竄改都會讓簽章驗證失敗——常見實作就是 JWT(JSON Web Token),用來無狀態地驗證身分或授權。
03什麼時候用 / WHEN TO USE
想做無狀態(stateless)登入驗證、API 授權、或產生「帶得走、可驗真偽、不能被竄改」的憑證(如密碼重設連結、邀請連結、一次性下載連結)時使用。
04怎麼跟 AI 說 / HOW TO ASK
直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:
幫我用 JWT 做登入驗證:登入成功後簽發一個簽章過的 token,後端每次用密鑰驗證 token 的簽章和過期時間,不要把敏感資料明文放進 payload。
05常見坑 / WATCH OUT
⚠ JWT 的 payload 是 base64 編碼、不是加密——任何人都能解開看內容,所以別放密碼之類的機密。簽章保證「沒被改」不保證「保密」。另外務必驗證過期時間(exp)並小心 alg=none 之類的簽章繞過漏洞。
06相關的詞 / RELATED