JWTのデバッグ方法|トークンの中身を安全に確認する
JWT 認証 デバッグ API
結論
貼り付けるだけで中身が見える。サーバーに送らないローカル処理のツールを選ぶ。401のときはまずexp(有効期限)を確認。
JWTの構造
JWTは、Header.Payload.Signature の3つの部分をドット(.)で繋いだ形式です。
- Header — アルゴリズム(HS256など)やトークンの種類が書かれている
- Payload — ユーザーID、有効期限など、実際に使う情報が入っている
- Signature — 改ざん検証用の署名
見た目は長い文字列ですが、HeaderとPayloadはBase64でエンコードされているだけなので、誰でもデコードして中身を読めます。暗号化ではないため、機密情報をPayloadに入れてはいけません。
デバッグの手順
1
JWTトークンをコピー(Bearerの後ろの部分だけ。eyJで始まる文字列)
2
JWTデコードツールの入力欄に貼り付ける
3
HeaderとPayloadが自動表示される。exp・subなどを確認する
よく見るクレーム(Payloadの中身)一覧
| クレーム | 意味・401のときの確認ポイント |
|---|---|
| **exp** | 有効期限(Unix時刻)。切れていればトークン再発行が必要。401のとき真っ先に確認。 |
| **sub** | ユーザーIDなど。想定どおりのユーザーか確認。 |
| **iat** | 発行日時。いつ発行されたか。 |
| **aud** | 対象者。どのAPI向けのトークンか。別API用のトークンを送っていないか。 |
安全にデバッグするために
重要
JWTの中身はBase64で誰でもデコードできる。 パスワードやクレジットカード番号をPayloadに入れるのは絶対に避ける。デバッグ時は、トークンをサーバーに送信しないツールを選ぶ。ブラウザ内で完結するローカル処理なら、本番のトークンでも安心して確認できる。
401が出たときの確認フロー
- expを確認 — 有効期限が切れていないか
- subを確認 — 正しいユーザーのトークンか
- audを確認 — このAPI向けのトークンか(複数APIを使っている場合)
- Authorizationヘッダー —
Bearerの後ろに正しくトークンが入っているか
🧪 JWTデコードツールで試す
貼り付けるだけでHeader・Payloadを確認できます
試す