JWT 是什麼?
JWT(JSON Web Token)是常見的登入憑證格式,由三段以 . 分隔的 Base64URL 組成:header.payload.signature。header 說明簽章演算法,payload 是使用者資料與到期時間等「聲明」(claim),signature 用來確認內容沒有被竄改。
如何使用
- 把 JWT 貼到左邊,可以包含開頭的
Bearer,右邊會立即顯示 header、payload 與到期狀態。 iat(簽發)、nbf(生效)、exp(到期)會轉成你所在時區的日期時間。- 如果是 HS256、HS384、HS512,輸入密鑰即可驗證簽章是否正確。
範例
按「載入範例」載入的 JWT,payload 解碼後是:
{
"sub": "1234567890",
"name": "Mike",
"role": "admin",
"iat": 1700000000,
"exp": 4102444800
}
它是以密鑰 toolpivo-secret 簽出的 HS256 token。
常見問題
JWT 的內容是加密的嗎?
不是。header 與 payload 只是 Base64URL 編碼,任何人拿到 token 都能看到內容,所以不要在 payload 放密碼等機密。簽章只能證明內容沒有被改過,不能隱藏內容。
把 token 貼到這裡安全嗎?
解碼與驗證都在你的瀏覽器中完成,token 與密鑰不會傳送到伺服器,也不會存到瀏覽器裡。不過正式環境的 token 仍建議用完就讓它過期。
為什麼 RS256 不能驗證?
RS256、ES256 等演算法用私鑰簽章、公鑰驗證,需要取得發行者的公鑰;本工具目前只支援用同一把密鑰簽章與驗證的 HS256、HS384、HS512。
exp 的單位是什麼?
依照 JWT 標準(RFC 7519),exp、iat、nbf 都是以「秒」為單位的 Unix 時間戳記,不是毫秒。