ホームページ >ウェブフロントエンド >jsチュートリアル >ライブラリを使用せずに JavaScript で JWT トークンをデコードするにはどうすればよいですか?

ライブラリを使用せずに JavaScript で JWT トークンをデコードするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 18:30:28995ブラウズ

How to Decode JWT Tokens in JavaScript Without Libraries?

ライブラリを使用せずに 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。