ライブラリを使用せずに JavaScript で JWT トークンをデコードする
JavaScript Web トークン (JWT) のペイロードを外部ライブラリに依存せずにデコードできます。 。これにより、デコード プロセスの制御が強化され、フロントエンド アプリケーションとのシームレスな統合が可能になります。
デコード プロセス
JWT 形式は、ピリオドで区切られた 3 つのセグメントで構成されます。 2 番目のセグメントにはペイロードが含まれます。ペイロードをデコードするには:
1.ペイロード セグメントを抽出します:
const payloadSegment = token.split('.')[1];
2.ペイロードをデコードする (ブラウザー)
ブラウザーの場合、ペイロードは通常のbase64とは異なるbase64urlを使用してエンコードされます。次のようにデコードします:
const payload = decodeURIComponent(window.atob(payloadSegment).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
3.ペイロードをデコードする (Node.js)
Node.js では、ペイロードは Base64url を使用してエンコードされません。バッファモジュールを使用してデコードします:
const payload = Buffer.from(payloadSegment, 'base64').toString();
4.ペイロード JSON を解析します
デコードされたペイロード文字列を JSON に変換します:
const payloadObject = JSON.parse(payload);
例:
トークン: xxxxxxxxxx を指定します。 XXXXXXXX.xxxxxxxx の場合、デコードされたペイロードは次のようになります。
{exp: 10012016, name: "john doe", scope: ["admin"]}
注:
このメソッドは、トークン署名を検証せずにペイロードのみを抽出します。トークンはデコード前に改ざんされた可能性があります。
以上がライブラリを使用せずに JavaScript で JWT トークンをデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。