JWTのデコード方法
- トークンを貼り付けます。先頭にBearerがあってもかまいません。
- デコードされたヘッダーとペイロードを確認します。
- 発行日時と有効期限をあなたのタイムゾーンで確認します。
JWTの構造
トークンは header.payload.signature の形です。ヘッダーとペイロードはBase64URLでエンコードしたJSON、署名は秘密鍵(HS256)や秘密鍵ペア(RS256、ES256)で計算した値です。
認証のデバッグ
デコードすると、期限切れか、対象(aud)、発行者(iss)、権限(roles、scope)がわかります。401や403エラーのよくある原因です。
トークンに秘密を入れない
JWTを持つ人は誰でもペイロードを読めるので、パスワードや個人情報は入れないでください。有効期限を短くし、ほかのサイトのスクリプトが読めない場所に保存しましょう。
よくある質問
トークンを貼り付けても安全ですか?
デコードはブラウザ内だけで行い、何も送信・保存しません。それでも本番のトークンはパスワードのように扱い、できればテスト用を使いましょう。
JWTの中身は?
署名アルゴリズムを含むヘッダー、ユーザーIDや発行・期限などのクレームを含むペイロード、署名です。ヘッダーとペイロードは暗号化ではなくBase64URLエンコードされているだけです。
iat、nbf、expの意味は?
発行日時、有効開始日時、有効期限で、いずれも秒単位のUNIXタイムスタンプです。
