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

JavaScript で JWT トークンを手動でデコードするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 08:00:30533ブラウズ

How to Decode JWT Tokens Manually in JavaScript?

JavaScript で JWT トークンをデコードする方法を考案する

ライブラリを利用せずに JWT トークンをデコードすることは、JavaScript で可能です。これは、トークンからペイロードを手動で抽出することで実現できます。

ペイロード抽出の手順:

1. Base64 デコード:

「.」を使用してトークンを 3 つの部分 (ヘッダー、ペイロード、署名) に分割します。キャラクター。 Base64URL エンコードを使用して 2 番目の部分 (ペイロード) をデコードします。これにより、「 」と「/」がそれぞれ「-」と「_」に置き換えられます。

2. Unicode テキスト置換:

デコードされたペイロードは Unicode テキスト シーケンスです。印刷不可能な文字 (% 記号) は、対応する ASCII コード (スペースなど) に置き換えます。

3. JSON 解析:

最後に、置換されたテキストを JSON として解析してペイロード オブジェクトを取得します。

実装:

ブラウザ:

<code class="javascript">function parseJwt(token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
    var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));

    return JSON.parse(jsonPayload);
}</code>

Node.js:

<code class="javascript">function parseJwt(token) {
    return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
}</code>

注: ペイロードをデコードしても、トークンの署名は検証されません。トークンが改ざんされていないことを前提としています。

以上がJavaScript で JWT トークンを手動でデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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