日本語ツール一覧 / JWTデコーダー — claimsと有効期限をトークン送信なしで確認English version →
JWTデコーダー — claimsと有効期限をトークン送信なしで確認
JWTはドットで区切られた3つの部分——header.payload.signature——で構成されます。最初の2つは単なるbase64urlで、トークンを持つ人なら誰でも読めます(暗号化ではありません)。このツールはclaimsを展開し、exp/iatを読める日時に変換して、トークンが期限切れかどうかを即座に表示します(401エラーの原因第1位です)。
重要なのは、デコードが完全にブラウザ内で行われること。サーバー側で処理するサイトに本番トークンを貼るのは、有効な認証情報を手渡すのと同じです。ここではトークンは端末から出ません。とはいえ、一度でもどこかに露出したトークンは漏洩済みとみなしてローテーションするのが原則です。
使い方
- JWT全体を貼り付ける(「Bearer 」プレフィックスは外す)
- header、payload、日時変換済みの有効期限を確認する
- 署名を検証したい場合は、続けてJWT Signature Verifierを使う
よくある質問
- 誰でも読めるなら偽造もできてしまうのでは?
- 読むことは誰でもできますが、偽造して通すことはできません。サーバーは鍵で署名を検証しており、payloadを1文字変えるだけで署名が一致しなくなります。本当の教訓は「payloadに秘密を入れない」こと。トークン保持者全員に公開されているのと同じだからです。
- expが1970年やあり得ない未来になるのはなぜ?
- 発行側が秒ではなくミリ秒を書き込んでいるからです(JWT標準はepochからの秒数)。13桁ならms、10桁なら秒です。
- 5つの部分があるトークンがデコードできません
- それはJWE(暗号化JWT)です。payloadが本当に暗号化されており、鍵なしでは読めません。3部分のJWS(署名のみ)とは別物です。