JSON Web Tokenのペイロードをデコード表示
JSON Web Tokenのペイロードをデコード表示。ブラウザ上で動作し、データがサーバーに送信されることはありません。
JWT(JSON Web Token)は、認証や認可の情報をやり取りするためのコンパクトなトークン形式です。1つのJWTは Header(ヘッダー)・Payload(ペイロード)・Signature(署名) という3つのパートを、ドット(.)で繋いだ xxxxx.yyyyy.zzzzz という構造をしています。
このうちHeaderとPayloadはそれぞれ JSON を Base64URLエンコードしたものです。Base64URLは通常のBase64に似ていますが、URLで扱いやすいよう + を - に、/ を _ に置き換え、末尾のパディング(=)を省略した方式です。Headerにはトークンの種類(typ)と署名アルゴリズム(alg)が、Payloadには実際の主張(クレーム)が格納されます。3つ目のSignatureは、HeaderとPayloadを連結した文字列に対して、指定アルゴリズムと秘密鍵(または公開鍵ペア)で生成された署名値で、トークンが改ざんされていないことを保証します。本ツールはHeaderとPayloadをBase64URLデコードして中身をそのまま表示し、Payloadに exp が含まれる場合は有効期限の状態(有効/期限切れ)も判定します。
| クレーム | 意味 |
|---|---|
| iss | 発行者(Issuer)。トークンを発行した主体を表す |
| sub | 主体(Subject)。トークンの対象となるユーザーIDなど |
| aud | 対象者(Audience)。このトークンの想定利用先 |
| exp | 有効期限(Expiration Time)。これを過ぎると無効。Unix時間(秒) |
| iat | 発行時刻(Issued At)。トークンが発行された時刻。Unix時間(秒) |
| nbf | 有効開始時刻(Not Before)。この時刻より前は無効。Unix時間(秒) |
| jti | JWT ID。トークンを一意に識別するための識別子 |
これらは RFC 7519 で定義された標準クレーム(Registered Claim Names)です。いずれも省略可能ですが、相互運用性のために用途を統一する目的で予約されています。これら以外に、アプリケーションが独自に定義するプライベートクレーム(例: name や role など)を自由に含めることもできます。