JWTデコーダー
JWTトークンをデコードして中身を確認
JWTトークンを貼り付けてください...
JWT の構造とデコードのしかた
JWT(JSON Web Token)は、ドット(.)で区切られた3つの部分——ヘッダー・ペイロード・署名——からなるトークンです。ヘッダーには署名アルゴリズム(alg)とトークン種別(typ)が入り、ペイロードにはユーザー ID や権限、発行時刻(iat)、有効期限(exp)といったクレームが入ります。前2つは Base64URL でエンコードされているだけなので、鍵がなくても中身を読めます。
このツールにトークンを貼り付けると、ヘッダーとペイロードが整形された JSON として表示され、署名部分もそのまま確認できます。ペイロードに exp が含まれている場合は、その時刻を読み取って「有効」か「期限切れ」かを判定して表示します。API が 401 を返すときに、トークンが失効しているのか、そもそもクレームが想定と違うのかを切り分けるのに役立ちます。
ここで行うのはデコードだけで、署名の検証は行いません。署名の正当性を確かめるには秘密鍵または公開鍵が必要で、それはサーバー側の責務だからです。逆に言えば、ペイロードが読めること自体は JWT の仕様どおりであり、機密情報を JWT に入れてはいけない理由でもあります。デコードはブラウザ内で完結し、貼り付けたトークンは送信されません。
よくある質問
- JWT は暗号化されていますか?
- 標準的な JWT のヘッダーとペイロードは Base64URL エンコードされているだけで、暗号化されていません。誰でも中身を読めるため、パスワードなどの機密情報を入れてはいけません。
- 署名の検証もできますか?
- このツールはデコード専用です。署名の検証には鍵が必要で、サーバー側で行うべき処理のため対応していません。
- 有効期限はどう判定していますか?
- ペイロードの exp クレーム(UNIX 時刻)を読み取り、現在時刻と比較して「有効」または「期限切れ」を表示します。
- 貼り付けたトークンは送信されますか?
- 送信されません。デコードはすべてブラウザ内で行われます。ただし有効なトークンは認証情報そのものなので、共有端末では使用後に画面を閉じてください。