ツール
PR

JWTデコーダー|トークンを貼るだけでヘッダー・ペイロードを整形表示(ブラウザ内で解析・送信なし)

saratogax
記事内に商品プロモーションを含む場合があります

JWT(JSON Web Token)を貼り付けると、ヘッダーとペイロードを整形表示し、expiat などの時刻クレームを日本時間(JST)に変換します。

処理はすべてブラウザ内で完結します。入力したトークンはサーバーに送信されないので、開発中のトークンも安心して貼り付けられます。

JWT を貼り付け(ヘッダー.ペイロード.署名)

※入力されたトークンはブラウザ内だけで解析し、サーバーには送信しません。また、署名の検証は行いません(中身の確認用です)。

トークンの中身(誰向けの、いつ切れるトークンか)をサッと確認したいときに便利です。

JWT(JSON Web Token)とは

JWT とは、認証・認可の情報を JSON で表し、コンパクトな文字列にまとめたトークンです。

ログイン後に発行され、API リクエストのたびに送ることで「このユーザーは認証済み」と伝える、といった用途で広く使われています。

見た目は xxxxx.yyyyy.zzzzz のようにピリオドで3つに区切られた文字列です。

JWTの3つの構成(ヘッダー・ペイロード・署名)

ピリオドで区切られた3つのパートは、それぞれ次の役割を持ちます。

パート中身エンコード
ヘッダー署名アルゴリズム(alg)やトークン種別(typ)Base64URL
ペイロードユーザーIDや有効期限などのクレームBase64URL
署名改ざん検知のための署名秘密鍵/公開鍵で生成
※表は横スクロールできます

ヘッダーとペイロードは Base64URL でエンコードされているだけなので、鍵がなくても誰でもデコードして中身を読めます。

つまりペイロードに秘密の情報(パスワードなど)を入れてはいけません。

「デコード」と「署名検証」は別物

このツールが行うのはデコード(中身の表示)だけで、署名の検証は行いません

  • デコード:Base64URL を戻して中身を読む。鍵は不要で、誰でもできる
  • 署名検証:そのトークンが改ざんされていない・正しい発行者のものかを鍵で確かめる

デバッグで「中身を見たいだけ」ならデコードで十分です。一方、サーバー側で「このトークンを信頼してよいか」を判断する場面では、必ず署名検証が必要です。

各言語での署名検証の実装は、記事末尾の関連記事で解説しています。

ペイロードの主要なクレーム

ペイロードに入る代表的な項目(クレーム)の意味は次のとおりです。

クレーム意味
iss発行者(issuer)
sub主体(subject)。ユーザーIDなど
aud想定利用者(audience)
exp有効期限。これを過ぎると無効(エポック秒)
iat発行時刻(issued at)(エポック秒)
nbf有効開始時刻(not before)(エポック秒)
※表は横スクロールできます

exp / iat / nbfエポック秒(10桁の数値)で入っています。上のツールでは、これらを自動で日本時間に変換し、exp が切れていないかも判定します。

エポック秒そのものの仕組みは、エポックミリ秒・エポック秒⇔日時 変換ツールで詳しく確認できます。

このツールの安全性(ブラウザ内処理)

JWT には認証情報が含まれるため、外部サービスに貼り付けるのは本来避けたいところです。

このデコーダーはJavaScript ですべてブラウザ内で処理しており、入力したトークンをサーバーへ送信しません。通信を切った状態でも動作します。

とはいえ本番の機密トークンの扱いには十分注意し、不要になったトークンは速やかに失効させましょう。

言語別のJWT検証・実装

中身を確認できたら、次はサーバー側での署名検証です。言語別の実装は以下で解説しています。

あわせて読みたい
【Java版】CognitoのIDトークンのJWT検証とダミートークンの作成
【Java版】CognitoのIDトークンのJWT検証とダミートークンの作成
あわせて読みたい
【TypeScript版】CognitoのIDトークンのJWT検証
【TypeScript版】CognitoのIDトークンのJWT検証
あわせて読みたい
【Python版】JWTのパースでbase64デコードできるようにパディングする
【Python版】JWTのパースでbase64デコードできるようにパディングする

まとめ

  • JWT はヘッダー・ペイロード・署名の3パートで構成される
  • ヘッダー・ペイロードは Base64URL なので鍵なしで中身を読める(=秘密情報は入れない)
  • デコード(中身の確認)と署名検証は別物。信頼判断には検証が必須
  • 上のツールはブラウザ内で完結し、トークンをサーバーに送信しない

💡 ブックマークしておくと、API デバッグ中にトークンの中身や有効期限をすぐ確認できて便利です。

あわせて読みたい
エポックミリ秒・エポック秒⇔日時 自動変換ツール|13桁/10桁の違い・JavaScript・Excel対応
エポックミリ秒・エポック秒⇔日時 自動変換ツール|13桁/10桁の違い・JavaScript・Excel対応
ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました