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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 00:26:28875ブラウズ

 How to Decode JWT Tokens in JavaScript Without External Libraries?

ライブラリを使用しない JavaScript での JWT トークンのデコード

JWT (JSON Web Token) のペイロードのデコードは、そのクレームにアクセスして使用するために不可欠です。フロントエンドアプリケーションで。以下は、ライブラリを介さずに JWT トークンをデコードする 2 つの効率的な方法です:

ブラウザ:

ブラウザ環境では、次の手順を使用して JSON ペイロードを抽出できます。

  1. ドット ('.') を区切り文字として使用して、トークンを 3 つの部分に分割します。
  2. base64url (RFC 4648 §5) を使用して、ペイロードを含む 2 番目の部分をデコードします。 ).
  3. base64url でエンコードされたペイロードを Unicode テキスト文字列にデコードします。
  4. Unicode 文字列を JSON オブジェクトとしてデコードします。

JavaScript コード:

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

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

Node.js:

Node.js は、JWT ペイロードをデコードする簡単な方法を提供します:

  1. 分割区切り文字としてドット (「.」) を使用して、トークンを 3 つの部分に分割します。
  2. ペイロードを含む 2 番目の部分を、base64 を使用してデコードします。
  3. デコードされたペイロードを変換します。バッファ オブジェクトを JSON オブジェクトに変換します。

JavaScript コード:

<code class="javascript">function parseJwt(token) {
    const base64Payload = token.split('.')[1];
    const payloadBuffer = Buffer.from(base64Payload, 'base64');
    const payload = JSON.parse(payloadBuffer.toString());

    return payload;
}</code>

注: これらのメソッドは署名を検証しません。 JWT トークンの。トークンの信頼性を確保するために、署名検証にライブラリを使用することを強くお勧めします。

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

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