開発者

JWTデコーダー

任意のJWTを貼り付けるだけで、ヘッダーとペイロードを瞬時にデコード — ブラウザを離れることもデータを送信することもなく、クレーム、有効期限、署名を確認できます。

このツールは役に立ちましたか?

JWTデコーダーとは?

JWT(JSON Web Token)は、現代のWeb APIが認証・認可のクレームを表現するための標準的な方法です。署名アルゴリズムを記述するヘッダー、実際のクレーム(ユーザーID、ロール、有効期限など)を含むペイロード、そして受信サーバーがトークンの改ざんを検証できるようにする署名の3つの部分で構成される、コンパクトで自己完結型のトークンです。 このデコーダーはヘッダーとペイロードを即座に読み取れるため、認証問題のデバッグ、APIが実際に送信しているクレームの確認、トークンの有効期限の確認などができます。すべてブラウザ内でローカルに処理されるため、バックエンドやCLIツールは不要で、センシティブなトークンを第三者のサーバーに送信する必要もありません。

この計算機を使用するタイミング

  • APIがトークンを拒否する理由をクレームと有効期限を調べてデバッグする
  • サポート調査またはインシデント対応中にトークンの有効期限を確認する
  • SSOまたはOAuthプロバイダーが、アプリケーションが期待するクレームを発行していることを検証します。
  • 面接準備やセキュリティコースワークのためにJWTの構造を学ぶ
  • ブラウザの開発者ツールやサーバーログからキャプチャされたトークンの内容を理解するために確認する
  • アルゴリズム不一致による認証障害をデバッグするためにトークン間のヘッダーアルゴリズムを比較する

手順:

  1. 入力ボックスにJWTを貼り付けるか、「サンプルを読み込む」をクリックして試してみてください。
  2. 入力すると同時にヘッダーとペイロードが自動的にデコードされます。
  3. iss、sub、exp、iatなどのクレームを、読みやすい形式で確認できます。
  4. タイムスタンプクレーム(exp、iat、nbf)は自動的に読みやすい日付に変換されます。

計算式

JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature) デコード:"."で分割し、最初の2つの部分をbase64UrlデコードしてJSONとしてパースします。 検証(ここでは行いません):HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature

ユースケース

  • APIがトークンを拒否する理由をクレームを調べてデバッグする
  • サポート調査中にトークンの有効期限を確認する
  • SSOやOAuthプロバイダーが期待通りのクレームを発行しているか検証する
  • 面接対策やコースワークのためにJWTの構造を学ぶ
  • ブラウザの開発者ツールやサーバーログから貼り付けたトークンを素早く確認する

主な利点

  • バックエンドやCLIツールなしで、任意のJWTを瞬時にデコード
  • すべてクライアント側で実行——トークンがサーバーに送信されることはありません
  • タイムスタンプクレームを自動的に読みやすい日付に変換
  • 無料、登録不要、アルゴリズムを問わずどのJWTでも動作

プロのヒント

  • 「unauthorized」エラーをデバッグする際は、まず'exp'を確認する——期限切れトークンが最も一般的な原因です
  • アルゴリズムの不一致によるバグを見つけるため、ヘッダーの'alg'とバックエンドが期待するものを照合してください
  • サーバー側で署名を検証せずに、デコードされたペイロードを身元の証明として決して信用しないでください
  • 漏洩時の影響を限定するため、長期間有効なJWTの代わりにリフレッシュトークンを併用した短期間有効なトークンを使用してください

避けるべきよくある間違い

  • デコードされたJWTを検証済みJWTだと思い込む——デコードは内容を読み取るだけで、真正性を確認するものではありません
  • 機密データ(パスワード、シークレット)をペイロードに保存し、誰でも読めることを忘れてしまう
  • 本番トークンを信頼できないオンラインデコーダーに貼り付ける
  • トークンの有効期間の問題をデバッグする際に'exp'(有効期限)と'iat'(発行日時)を混同する

重要な用語の説明

クレーム:ユーザーIDやロールなど、主体について主張される情報の一片
ヘッダー:署名アルゴリズムとトークンタイプを指定する最初のJWTセグメント
ペイロード:実際のクレームを含む2番目のJWTセグメント
署名:トークンが改ざんされていないことを検証するために使用される3番目のJWTセグメント

関連コンセプト

例

eyJhbGciOiJIUzI1NiJ9で始まるトークンは、{"alg":"HS256","typ":"JWT"}というヘッダーにデコードされます——これはトークンがHMAC-SHA256で署名されていることを示しています。

結果の解釈方法

デコーダーはJWTを2つのドット区切りで分割し、最初の2セグメントをBase64URLでデコードします。ヘッダーには署名アルゴリズム(HS256やRS256など)とトークンの種類が示されます。ペイロードには実際のクレーム(ユーザーID、権限、タイムスタンプ)が含まれます。 タイムスタンプのクレーム(exp、iat、nbf)はUnixエポックから読みやすい日付へ自動変換されます。'exp'が過去の日付を示している場合、トークンは期限切れで、ほとんどのサーバーが拒否します。'sub'(サブジェクト)クレームには通常ユーザーIDが含まれ、'iss'(発行者)はトークンを作成したサーバーを識別します。 デコードは検証ではないことを覚えておいてください。署名セクションは表示されますが、秘密鍵または公開鍵なしでは検証できません。デコードされたペイロードは参考情報にすぎません。サーバー側の署名検証なしに、身元の証明として信頼してはいけません。

よくある質問

JWTとは何ですか?
JSON Web Token(JWT)は、2つの当事者間でクレームを表現するためのコンパクトでURLセーフな方法です。ドットで区切られた3つのBase64URLエンコード部分——ヘッダー、ペイロード、署名——で構成されています。
このツールに自分のJWTを貼り付けても安全ですか?
デコードはすべてブラウザ内でJavaScriptを使用して行われます——トークンはどのサーバーにも送信されません。とはいえ、JWTはパスワードのように扱ってください。本番システムのトークンは、このツールを含むどのオンラインツールにも貼り付けないようにしましょう。
このツールが署名を検証できないのはなぜですか?
JWTの署名を検証するには、発行元サーバーのみが保持すべき秘密鍵(HMACアルゴリズムの場合)または公開鍵(RSA/ECDSAアルゴリズムの場合)が必要です。このツールは読み取り可能なヘッダーとペイロードのみをデコードします——その鍵にアクセスすることは決してありません。
'exp'クレームは何を意味しますか?
'exp'(有効期限)は、トークンが無効になる時刻を示すUnixタイムスタンプです。このツールは自動的にそれを読みやすい日付に変換し、トークンが期限切れかどうかをすぐに確認できるようにします。
JWTとは何ですか?
JSON Web Token(JWT)は、2つの当事者間でクレームを表現するためのコンパクトでURLセーフな方法です。ドットで区切られた3つのBase64URLエンコード部分——ヘッダー、ペイロード、署名——で構成されています。
このツールに自分のJWTを貼り付けても安全ですか?
一般的なアルゴリズムには、HS256(HMAC-SHA256、対称)、RS256(RSA-SHA256、非対称)、ES256(ECDSA)などがあります。ヘッダーの'alg'フィールドがアルゴリズムを指定します。Web APIで最も一般的なのはHS256またはRS256です。
このツールが署名を検証できないのはなぜですか?
'iat'(発行時刻)はトークンが作成された時刻です。'nbf'(以後有効)はトークンが有効になる時刻です。'nbf'が未来の日時の場合、まだ期限切れでなくてもトークンは拒否されるべきです。
'exp'クレームは何を意味しますか?
ヘッダーとペイロードはBase64URLでエンコードされているだけで、暗号化はされていません。誰でも読むことができます。JWTペイロードにパスワード、シークレット、機密性の高い個人データを保存しないでください。ユーザーID、ロール、タイムスタンプなど、機密性の低いクレームのみを入れましょう。
JWTはどのようなアルゴリズムを使用できますか?
アクセストークンの有効期間は通常15〜60分です。リフレッシュトークンは数時間から数日です。有効期間の短いアクセストークンと有効期間の長いリフレッシュトークンを組み合わせることで、セキュリティとユーザー体験のバランスが取れます。
デコードされたクレームをコピーするにはどうすればよいですか?
リフレッシュトークンは、ユーザーが再認証しなくても新しいアクセストークンを取得できる長期有効なトークンです。短命なアクセストークンの期限が切れると、クライアントはリフレッシュトークンを送信して新しいアクセストークンを取得します。
デコードされたクレームをコピーするにはどうすればよいですか?
デコードされたヘッダーとペイロードは、整形されたJSONとして表示されます。デバッグやドキュメント作成の目的で、デコードされた出力全体または個々のクレーム値をコピーできます。

さらに多くのツールを見る

ツールライブラリ全体から厳選したおすすめです。