JWT 調試:拆解 Header / Payload / Signature
JWT 三段結構如何解碼,claims 怎麼看,簽名驗證的前提與安全注意(別粘生產密鑰)。
JWT 的三段結構
JWT(JSON Web Token)形如 header.payload.signature,前兩段是 Base64URL 編碼的 JSON,第三段是簽名。用 . 分割即可分別解碼查看。
重點看 Payload 的 claims
sub 主體、iss 簽發者、exp 過期時間(Unix 秒)、iat 簽發時間。exp 過期後 token 應被拒絕。
簽名驗證的邊界
僅解碼不驗證簽名;要驗證簽名必須持有對應密鑰/公鑰,且應在服務端完成。前端調試只做可讀性解碼。
安全注意
JWT 中不要放密碼等敏感信息(它只是編碼不是加密),且切勿把生產密鑰粘貼到不可信頁面。
常見問題
- Base64URL 和普通 Base64 一樣嗎?
- 類似但把 + / 換成 - _ 並去掉填充 =,更適合放在 URL 中。
- 為什麼解碼出 exp 但頁面説已過期?
- exp 是 Unix 秒,需對照當前時間;可用時間戳工具核對。
- 能在瀏覽器裏驗證簽名嗎?
- 可以持密鑰驗證,但密鑰暴露在前端有風險;生產驗證務必放服務端。