JWTデコーダー

貼り付けるだけでJSON Web Tokenをデコードし、ヘッダー、ペイロード、クレームを確認できます。有効期限とnot-beforeも自動でチェックします。署名は検証しないため、デバッグや内容の確認用であり、本番トークンの検証には使えません。

JWT(header.payload.signature)を貼り付けると、そのままデコードされます。

デコード済みトークン

結果がここに表示されます...

JWTデコーダーの使用方法

  1. 入力フィールドにJWTトークンを貼り付けてください
  2. 貼り付けや入力と同時に、トークンが自動的にデコードされます
  3. デコードされたヘッダー、ペイロード、署名のセクションを表示してください
  4. トークンの有効性、有効期限、キークレームを確認してください
  5. 各セクションの横にあるコピーボタンで、その部分だけをコピーできます

JWT Decoder で JSON Web Token を読み解く

このデコーダーができること

JSON Web Token は、ピリオドでつながれた 3 つの Base64URL エンコード部分、つまり header・payload・signature で構成されます。このデコーダーは文字列をそのピリオドで分割し、header と payload を読める JSON に復元して、signature 部分はそのまま表示します。header の alg フィールドを読み取り、標準の登録済みクレーム(sub・iss・aud・jti)と時刻系クレームを並べて示すので、そのトークンが何を主張しているのかを一目で確認できます。

トークンを貼り付けた時点でデコードが走り、別途送信ボタンを押す必要はありません。デコード結果の構造をとりあえず見てみたいときのために、「例を入力」で入れられる例のトークンも用意されています。

こんなときに使う

認証付きリクエストの挙動がおかしく、トークンが実際に何を運んでいるのかを確かめたいときに役立ちます。よくあるのは原因のわからない 401 です。トークンを貼り付ければ、ステータス表示が有効期限切れなのか、まだ有効になっていないのか、それとも有効期間内なのかをすぐに教えてくれます。

ログインフローを組み立てる際にも便利で、issuer・audience・subject がバックエンドの想定どおりか、サーバー側で追加した独自クレームが本当に payload に入っているかを確認できます。

例:3 つの部分を読む

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.SflKx... のような形のトークンでは、最初のセグメントは {"alg":"HS256","typ":"JWT"} のような header に、2 番目は {"sub":"1234","iat":1700000000,"exp":1700003600} のような payload にデコードされ、3 番目は不透明な signature のまま残ります。デコーダーは数値の iat と exp をローカル時刻の日付に変換し、トークンがまだ有効なら失効までの残り時間も表示します。

注意点とエッジケース

デコードは検証ではありません。このツールは signature を秘密鍵や公開鍵と照合しないため、デコードできたトークンは「そう主張している」ことを示すだけで、その主張が信頼できることまでは保証しません。トークンをもとに何か処理する前には、必ずサーバー側で適切なライブラリを使って signature を検証してください。payload は Base64URL でエンコードされているだけなので、その中身はトークンを持つ人なら誰でも読めるものとして扱ってください。暗号化されているわけではありません。同じ理由から、自分の管理下にない本番トークンを貼り付けるのは避けましょう。また exp と nbf は秒単位の Unix タイムスタンプであり、だからこそ exp を過ぎた瞬間にトークンは失効として表示されます。

よくある質問

貼り付けた JWT は header・payload・signature・アルゴリズム・失効時刻・発行時刻まですべてデコードされ、有料の壁の向こうに隠された機能はありません。トークン数の制限も、プレミアムプランも、作成するアカウントもありません。