使用方式
- 從 Authorization 標頭、cookie 或瀏覽器的開發人員工具複製權杖。開頭的「Bearer 」會自動移除。
- 將權杖貼入欄位,即可查看格式化的 JSON 標頭與 payload。
- 查看狀態列與 claims 表格,確認簽發者、對象及以當地時間顯示的到期日期。
- 如需在其他地方使用,可複製標頭或 payload 的 JSON。
運作方式
JSON Web Token(JWT,RFC 7519)常見的簽章形式(JWS)由三個以點號分隔、採 Base64URL 編碼的部分組成。標頭會指出簽署 Token 所用的演算法,例如 HS256(使用 SHA-256 的 HMAC)或 RS256(RSA)。Payload 則包含 claims,也就是關於使用者和 Token 本身的陳述。簽章可讓伺服器確認標頭和 payload 未遭變更。
標頭和 payload 只有經過編碼,並未加密。任何持有 Token 的人都能讀取其內容,而這正是本工具的功能。請勿在 JWT payload 中放入機密資訊。
解碼並不能證明 Token 有效。沒有簽發者的金鑰,就無法判斷簽章是否真實,因此絕不可用此處的結果來決定是否信任某個 Token。驗證應在您的伺服器上進行,並使用維護良好的 JWT 程式庫來檢查簽章、演算法、exp、nbf、iss 和 aud。
表格中說明了註冊的 claims。exp、nbf 和 iat 是 NumericDate 值,也就是自 1970 年 1 月 1 日 UTC 起算的秒數。本工具會將這些值轉換為您所在時區的日期,並與裝置時鐘比較,不會採用伺服器常用來容許時鐘誤差的少量時間寬限。如果裝置時鐘不準,狀態也會不正確。
有五個部分的 Token 是加密的 JWT(JWE)。沒有金鑰就無法解碼其 payload,因此本工具只會回報其格式。
範例
為什麼我的 API 回應 401?
解碼應用程式傳送的存取 Token。如果狀態列顯示「已於……過期」,用戶端就需要更新 Token。如果 aud 顯示 https://api.example.com,但您呼叫的是 https://api2.example.com,代表受眾不符。
檢查 OpenID Connect ID Token
登入提供者發出的 ID Token 包含 iss(提供者)、sub(穩定的使用者 ID)、aud(您的用戶端 ID)、iat 和 exp,以及 email 和 name 等個人資料 claims。解碼後即可查看應用程式實際收到哪些 claims。
讀取時間戳記 claim
Payload 包含 "exp": 1735689600。claims 表格會顯示此值對應的日期為 2025 年 1 月 1 日 00:00:00 UTC,並轉換為您的當地時間,同時顯示該時間距今多久或還有多久才到。
常見問題
這個工具會驗證 JWT 簽章嗎?
不會。本工具只會解碼標頭和 payload。驗證需要密鑰(HS256)或簽發者的公開金鑰(RS256 和 ES256),並應在您的伺服器上使用可信任的程式庫進行。
在這裡貼上我的 Token 安全嗎?
Token 會在您的瀏覽器中解碼,不會傳送到其他地方。即使如此,有效的 Token 在過期前仍等同密碼,因此建議使用已過期或測試用的 Token,切勿將正式環境的 Token 貼到您不信任的工具中。
為什麼任何人都能讀取 payload?
簽署過的 JWT 使用 base64url 編碼,這並不等於加密。簽章可防止權杖遭到竄改,但無法防止他人讀取。若內容必須保密,請使用加密 JWT(JWE),或將資料保留在伺服器上。
「exp」代表什麼?使用的單位是什麼?
exp 是以 NumericDate 表示的到期時間:自 1970-01-01 00:00:00 UTC 起算的整秒數(不是毫秒)。到達或超過該時間時,必須拒絕此權杖。
為什麼會出現「不是有效的 base64url」?
權杖可能在複製時遭到截斷或變更,例如遺失結尾字元、加上引號,或經過 URL 編碼(%2E 取代了句點)。請原封不動貼上簽發時的原始權杖。
隱私權
權杖會透過 JavaScript 在瀏覽器中解碼,不會傳送至任何伺服器、儲存或納入分析資料。此工具不會驗證簽章或查詢金鑰,因此不會發出網路請求。