JWTデコーダー
JWTの文字列を入力するだけで、ヘッダーとペイロードの内容がわかります。有効期限(exp)など主要なクレームも自動で読み取って表示。すべてブラウザ内で処理。
最終更新:2026年9月9日 / 運営:sesebox(運営者情報)
JWT(JSON Web Token)の文字列を入力すると、ヘッダーとペイロードをデコードした内容が表示されます。
① このツールの使い方
入力欄にJWTの文字列(英数字とピリオドで区切られた長い文字列)を貼り付けるだけで、ヘッダーとペイロードの中身がJSON形式で表示されます。ボタンを押す必要はなく、貼り付けた瞬間に結果が更新されます。
ペイロードにexp(有効期限)などの日時に関するクレーム(項目)が含まれている場合は、人が読める日時に変換されたうえで、「有効期限内」か「有効期限切れ」かの判定もあわせて表示されます。
② JWTとは何か
JWT(JSON Web Token)は、ログイン後の認証状態やユーザー情報などをやり取りするために使われる、コンパクトな文字列形式のトークンです。ヘッダー.ペイロード.署名という3つの部分がピリオドで区切られた構造になっており、それぞれがBase64URLという形式でエンコードされています。
| 部分 | 内容 |
|---|---|
| ヘッダー(Header) | 署名に使うアルゴリズムやトークンの種類などのメタ情報 |
| ペイロード(Payload) | ユーザーIDや権限、有効期限など、実際にやり取りしたい情報(クレーム) |
| 署名(Signature) | ヘッダーとペイロードが改ざんされていないことを保証するための値 |
サーバーはログイン成功時にこのJWTを発行してクライアントに渡し、クライアントは以降のリクエストにこのJWTを添えることで「自分が誰か」を証明します。セッションIDをサーバー側で管理する従来の方式と違い、JWT自体に必要な情報が含まれているため、サーバー側で状態を保持しなくてよい(ステートレスな)認証方式として広く使われています。
③ 署名の検証はできない、という点に注意
このツールは、JWTのヘッダーとペイロードをその場でデコードして表示するだけで、署名の検証は行いません。JWTの構造上、ヘッダーとペイロードは暗号化されておらずBase64URLでエンコードされているだけなので、専用のツールがなくても誰でも中身を読み取ることができます。一方で、その内容が改ざんされていないかどうかを確認するには、発行元だけが持つシークレットキーや秘密鍵を使った署名検証という別の処理が必要です。改ざんされたJWTであっても、このツールではヘッダー・ペイロードの中身がそのまま表示されてしまうため、認証・認可の判断にこのツール自体を使わないよう注意してください。
④ 有効期限の判定について
「有効期限内」「有効期限切れ」の判定は、ペイロードに含まれるexp(有効期限を表すUnixタイムスタンプ)と、お使いの端末の現在時刻を比較して行っています。expクレームが含まれていないJWTでは、この判定自体が表示されません。似た項目としてiat(発行日時)・nbf(これより前は無効という開始日時)もあわせて表示されます。
⑤ 実務での使いどころと注意点
API開発やログイン機能のデバッグをしていると、「なぜこのリクエストが401(未認証)で弾かれるのか」を調べる場面がよくあります。そんなときにブラウザやAPIクライアントの通信ログからJWTをコピーしてこのツールに貼り付ければ、有効期限が本当に切れていないか、想定していたユーザーIDや権限(role・scopeなど)が正しく含まれているかを、コードを書かずにその場で確認できます。
注意したいのは、JWTのペイロードはユーザーID・権限・場合によってはメールアドレスなどの情報を含むことがあり、暗号化されていないため誰でも読み取れるという点です。JWT自体を第三者と気軽に共有したり、公開の場に貼り付けたりしないよう注意してください。入力した内容はこのツール内でもすべてブラウザ内で処理され、サーバーに送信されることはありません。
⑥ アクセストークンとリフレッシュトークンの違い
ログイン機能を持つアプリケーションでは、JWTが「アクセストークン」と「リフレッシュトークン」という2種類の役割で使い分けられることがよくあります。アクセストークンは実際のAPIリクエストに毎回添えられる短命なトークンで、有効期限を数分〜数時間程度に短く設定するのが一般的です。一方リフレッシュトークンは、アクセストークンの有効期限が切れた際に新しいアクセストークンを再発行してもらうための、比較的長い有効期限(数日〜数週間)を持つトークンです。このツールでどちらのトークンかを判別する直接の機能はありませんが、ペイロードに含まれるexpの値がどれくらい先の時刻を指しているかを見れば、短命なアクセストークンか長命なリフレッシュトークンかのおおよその見当をつけられます。
⑦ デバッグでよく遭遇するエラーとの向き合い方
API開発中に「401 Unauthorized」や「トークンが無効です」といったエラーに遭遇した場合、まずはこのツールでトークンをデコードし、期待していたクレーム(ユーザーIDや権限)が正しく含まれているか、有効期限が本当に切れていないかを確認するのが調査の第一歩になります。もしペイロードの中身自体は正しいのにエラーが出る場合は、署名検証の失敗(シークレットキーの不一致やアルゴリズムの相違)や、サーバー側の時計のずれなど、このツールでは見えない部分に原因がある可能性が高いといえます。デコード結果が想定通りかどうかを先に切り分けておくことで、原因調査の範囲を絞り込みやすくなります。
Base64URLの元になっているBase64の仕組みはBase64エンコード・デコードツールでも確認できます。JWTの基本的な使われ方はJWTの基礎を解説した記事にまとめています。
JWTデコーダーは何に使えますか?
ログイン処理やAPI連携で発行されたJWT(JSON Web Token)の中身を確認したい時に使えます。ヘッダー(署名アルゴリズムなど)とペイロード(ユーザーIDや有効期限などのクレーム)をJSON形式で読みやすく表示します。
署名の検証はできますか?
いいえ、このツールは署名の検証は行いません。JWTの構造上、誰でもヘッダーとペイロードの内容を読み取ることができるため、デコード結果の表示のみを行っています。改ざんされていないかの検証には、発行元のシークレットキーや公開鍵を使った専用の検証処理が必要です。
「有効期限内」「有効期限切れ」はどう判定していますか?
ペイロードに含まれる exp(有効期限のUnixタイムスタンプ)と、お使いのデバイスの現在時刻を比較して判定しています。exp クレームが含まれていないJWTでは、この判定は表示されません。
JWTにはどんな機密情報が含まれていますか?
JWTのペイロードは暗号化されておらず、Base64URLエンコードされているだけなので、誰でも内容を読み取れます。ユーザーID・権限・有効期限などの情報が含まれることが多いため、JWT自体を第三者と共有する際は注意してください。
入力したJWTはサーバーに送信されますか?
いいえ。デコード処理はすべてブラウザ内のJavaScriptで行われ、入力したJWT文字列がサーバーに送信されたり保存されたりすることはありません。