JWT デコーダーは、JSON Web トークンを 3 つのドットで区切ったセグメントに分割し、base64url-はヘッダーとペイロードをデコードし、両方をフォーマットされた JSON としてレンダリングします。 JWT は暗号化されていません。「エンコード」は、Base64URL であり、可逆変換であるため、トークンを保持している人なら誰でもその中のすべてのクレームを読み取ることができます。 このツールは、その検査を即座にします: Set-Cookie ヘッダーからトークン、承認ヘッダー (ベアラ プレフィックスは自動的に削除されます)、または認証プロバイダーのダッシュボードからトークンを貼り付け、サーバーに何を入れたかを正確に確認します。
クレーム テーブルは、実際にデバッグが行われる場所です。 登録された時間のクレーム — EXP (期限切れ)、IAT (発行済み)、および NBF (以前はない) — は、UNIX タイムスタンプであり、RAW を読むのは役に立ちません。 デコーダは、それぞれを人間の日付と相対的な時間 (「3 時間前に期限切れ」、「14 分で期限切れ」) に変換し、期限切れのトークンに赤でフラグを立てます。 ほとんどの「401 は無許可ですが、トークンは問題ないように見えます」インシデントは、期限切れの EXP、クロック スキューの NBF、または API が検証したものと一致しない AUD クレームに帰着します。すべてここで 2 秒で表示されます。
このツールが意図的にできないことの 1 つは、署名の確認です。 検証には署名の秘密 (HS256) または公開鍵 (RS256/ES256) が必要であり、HMAC シークレットを貼り付けるように求めるクライアント側のツールは、悪い習慣を教えることになります。 デコードは 100% クライアント側です。トークンはブラウザーを離れることはなく、サーバーにもヒットもせず、リクエスト ログに表示されません。これは、ライブ プロダクション JWT がベアラの資格情報であるため、重要です。 それを持っている人は、あなたですか。
JWT を入力領域にドロップします。 ブラウザーの DevTools ネットワーク タブの承認ヘッダー、Cookie、LocalStorage、または Curl レスポンスから取得します。 先頭の「ベアラー」接頭辞と周囲の空白は自動的に削除されるため、クリーンアップなしでヘッダー値全体を貼り付けることができます。
両方のセグメントは、並べてフォーマットされた JSON としてレンダリングされます。 ヘッダーは、署名アルゴリズム (ALG: RS256、HS256 など) を示します。 そしてキー ID (KID) — JWK のローテーションが正しくない場合に役立ちます。 ペイロードには、サブ、ISS、AUD、スコープ、ロール、および認証レイヤーが追加したカスタム データなどのクレームが含まれます。
時間の主張 (exp、iat、nbf) は、Unix 秒から読み取り可能な日付に、相対時間でデコードされます。 期限切れの EXP は赤で表示され、それが経過した正確な時間は正確に表示されます。有効な EXP は、残りの時間を緑色で表示します。 NBF が将来 (通常はサーバー間でクロック スキュー) である場合、トークンは「問題なく見える」にもかかわらず、拒否されます。
このツールは、署名はチェックしません。これには、ブラウザー ツールではなく、サーバーに属する秘密鍵または公開鍵が必要です。 デコードされたクレームを信頼できる入力として扱わないでください。攻撃者は、必要なペイロードでトークンをミントできます。 検証済みの署名だけが、変更なしで発行者からのクレームを証明しています。
Pure Typescript での Base64URL デコード — JSON セグメントの両方がフォーマットされ、すぐに読み取れます
EXP クレームは、期限切れのときに赤く、有効な場合は緑色で、どちらにしても正確な相対時間で、赤くなります。
exp、iat、および nbf を未加工の UNIX 秒から ISO の日付と「3 時間前」のスタイルのフレージングに変換
承認ヘッダー全体を貼り付け — "ベアラー" と空白文字が自動的に削除されます
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text
Encode and decode text to/from Base64 format
Convert between Unix timestamps and human-readable dates
Format, validate, and minify JSON data
0 comments
No comments yet. Be the first to share your thoughts!