JWT(JSON Web Token)のヘッダーとペイロードをデコードして表示します。トークンの中身や有効期限の確認に使えます。
JWTの構造
ヘッダーとペイロードはBase64URLでエンコードされているだけで、暗号化されていません。誰でも中身を読めます。
xxxxx.yyyyy.zzzzz │ │ └ 署名(Signature) │ └ ペイロード(Payload): 実際のデータ └ ヘッダー(Header): アルゴリズムとトークン種別
主なクレーム(ペイロードの項目)
| 名前 | 意味 |
|---|---|
| iss | 発行者 |
| sub | 主体(ユーザーIDなど) |
| aud | 対象者 |
| exp | 有効期限(Unix時間) |
| iat | 発行時刻(Unix時間) |
| nbf | この時刻より前は無効 |
扱ううえでの注意
- ペイロードに個人情報や秘密を入れない(誰でも読めます)
- 署名の検証はサーバー側で必ず行う。デコードだけでは改ざんを検知できません
- 有効期限は短く設定し、更新にはリフレッシュトークンを使う
- 本番環境のトークンを他人と共有しない(ログイン権限そのものです)
有効期限の設計
アクセストークンの有効期限を長くすると、漏えいしたときの被害が広がります。短く設定し、リフレッシュトークンで更新する構成が一般的です。
ログアウト時に無効化したい場合は、有効期限だけでは対応できません。サーバー側で無効化リスト(ブラックリスト)を持つなどの仕組みが必要になります。
※ 本ツールはデコードのみで、署名の検証は行いません。
※ 本番環境のトークンは第三者に渡らないようご注意ください。
よくある質問
Q JWTは暗号化されていますか?
されていません。Base64URLでエンコードされているだけで、誰でも中身を読めます。
Q 署名の検証はできますか?
本ツールはデコードのみです。検証には秘密鍵・公開鍵が必要で、サーバー側で行うべき処理です。
Q 有効期限はどこで分かりますか?
ペイロードの exp(Unix時間)です。デコード結果で日時に変換して表示します。
Q トークンは送信されますか?
されません。デコードはブラウザ内で行っています。
