JWT デコーダー — Header/Payload をブラウザで表示(署名検証なし)
JWT を貼り付けて Header と Payload の JSON をブラウザで確認 — 署名検証はしません。手順:トークンを貼る→デコード→Header または Payload をコピー。例:サンプル token は alg HS256、iat 1516239022 を UTC とローカル時刻で表示。トークンは送信されません。
使い方
完全な JWT(header.payload.signature)を貼り付けます。ドットで分割し、最初の 2 セグメントを Base64url デコードして JSON を整形。exp/iat/nbf が数値なら UTC とローカル時刻も表示。3 番目の Signature は生文字列のみ — 検証しません。
知っておくべきルール
このデコーダーが行うこと・行わないこと:構造、Base64url、登録クレーム、署名検証なしの境界。
- 構造:署名付き JWT(JWS コンパクト形式)は Base64url の 3 セグメント — Header(alg, typ)、Payload(claims)、Signature(バイナリ、JSON ではない)。
- Base64url:-→+、_→/、長さ %4 になるよう padding を補い、atob と JSON.parse。エラーは Header か Payload を明示。
- 登録クレーム:exp(失効)、iat(発行)、nbf(有効開始)は UTC の Unix 秒。JSON が読めても token が信頼できるとは限りません。
- プライバシー:貼り付けはローカル;HMAC/RSA 検証なし。本番の認可はデコード結果だけに依存しないでください。
例
入力:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9eIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c → Header:{"alg":"HS256","typ":"JWT"}。Payload:{"sub":"1234567890","name":"John Doe","iat":1516239022}、iat は UTC とローカル時刻を表示。Signature は生文字列のみ — 未検証。
こんなときに
- OAuth デバッグ:access token の sub・scope・exp を API ゲートウェイ設定前に確認。
- API 契約:ID token の iss・aud がドキュメントと一致するか確認。
- 学習:Header・Payload・Signature が JWS 3 セグメントにどう対応するかを理解。
Frequently asked questions
署名を検証しますか?
いいえ。デコードは Header/Payload の Base64url を戻すだけです。署名検証には発行者の鍵が必要で、本ページでは行いません。
セグメント数エラーになるのはなぜ?
ドット 2 つで 3 セグメントの完全な token か確認してください。余分なドット、途中までの貼り付け、JWT 以外の文字列は失敗します。
Base64url と通常の Base64 の違いは?
JWT は Base64url:+ の代わりに -、/ の代わりに _、末尾の = を省略することが多いです。通常の Base64 ツールは URL-safe token で失敗することがあります。
exp・iat・nbf の読み方は?
exp・iat・nbf は UTC の Unix 秒です。本ページは UTC とローカル時刻に変換します。exp は現在時刻と比較して期限切れを判断してください。
トークンはサーバーに送られますか?
いいえ。分割・Base64url デコード・JSON 解析はすべてブラウザのタブ内で完結します。
お問い合わせ・フィードバック
分かりにくい点、不具合、不足があれば下にメッセージを書いてください。ツールに関する内容はすべて確認します。