JWT 解碼器
貼上 JSON Web Token,在瀏覽器裡讀出 header、payload、簽章與到期時間。Token 不會離開頁面,簽章也未經驗證。
此工具只會讀取 Token 內容,不會驗證簽章,也不能證明其中的聲明可信。
JWT 解碼器可以做什麼
JSON Web Token 是由點號串起的三段 base64url:header 說明簽章算法,payload 攜帶 claims,最後是簽章。API 在登入時發出 token,之後每個請求都要帶上它;一旦驗證失敗,你得先看到 payload 才知道問題在哪。
這個解碼器會拆開三段、解析 header 與 payload,並用表格列出 claims 與可讀的時間。全部在瀏覽器內完成,內部 token 與客戶資料不會送到伺服器;而驗簽需要你提供密鑰,把密鑰貼進網頁本身就是風險,因此這一步留給你自己的程式。
如何解碼 JWT
- 把 token 貼進輸入框:原始字串或整行 Authorization: Bearer 都可以,前綴會自動移除。
- 按「解碼」;若只是想看看結果,按「產生範例」即可。
- 先看 Header 與 Payload 兩個區塊,再用 Claims 對照表讀出 issuer、subject 與 audience。
- 檢查 exp 那一列:表格會換算成本機時間,並直接標示已過期、仍有效或尚未生效。
JWT 解碼範例
登入回應裡的 access token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzQyIiwiaXNzIjoiaHR0cHM6Ly91cnNha2l0LmNvbSIsImV4cCI6MTc5MDAwMDAwMH0.abc123
Header 為 {"alg":"HS256","typ":"JWT"},payload 內含 sub、iss、exp,Claims 表格會把到期時間換算成本機時間。已過期的 token
格式相同,但 exp 是過去的時間戳
exp 那一列顯示「已於 <本機時間> 過期」,這是最快分辨時鐘問題與權限問題的方法。
從 DevTools 複製的髒字串
Authorization: Bearer eyJhbGciOiJIUzI1N…(含引號與換行)
解碼器會移除 Authorization、Bearer、引號與空白,再正常解碼。
UrsaKit 與其他 JWT 解碼器比較
| 比較項目 | UrsaKit | jwt.io | token.dev | devglan.com |
|---|---|---|---|---|
| 價格 | 免費,免註冊 | 免費,另有付費功能 | 免費 | 免費,含廣告 |
| 解碼位置 | 你的瀏覽器 | 你的瀏覽器 | 你的瀏覽器 | 你的瀏覽器 |
| 上傳 token | 否 | 否 | 否 | 否 |
| Claim 說明 | 有,含到期狀態 | 部分 | 無 | 無 |
| 驗證簽章 | 不驗,刻意如此 | 要驗,需提供密鑰 | 可選驗證 | 要驗,需提供密鑰 |
| 附帶編碼器 | 無 | 有 | 有 | 有 |
常見問題
常見問題
這個 JWT 解碼器要收費嗎?
不用。解碼、Claims 表格、範例 token 與複製功能都免費,免註冊也沒有使用次數限制。
我的 token 會被上傳嗎?
不會。token 只用瀏覽器內的 JavaScript 解碼,不會送到伺服器、儲存或寫入紀錄。
會驗證 JWT 簽章嗎?
不會。本頁只做解碼。驗簽需要簽發方的密鑰或公鑰,而要求你把密鑰貼進網頁本身就是不必要的風險。
解碼出來的 claims 可以直接相信嗎?
請把它當成資料。任何人都能造出任意 payload 的 token,只有在你自己的後端驗過簽章之後才可信任。
exp 要怎麼看?
exp 是以秒為單位的 Unix 時間戳。Claims 表格會換算成本機時間,並標示已過期、仍有效或尚未生效。
可以解 alg: none 的 token 嗎?
可以。這類 token 的第三段是空的,解碼器會顯示「沒有簽章段(alg: none)」,仍照常顯示 header 與 payload。