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

Barbara Streisand
リリース: 2024-10-29 18:30:28
オリジナル
897 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!