Heim >Web-Frontend >js-Tutorial >Wie dekodiere ich JWT-Tokens in JavaScript ohne externe Bibliotheken?

Wie dekodiere ich JWT-Tokens in JavaScript ohne externe Bibliotheken?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 00:26:28886Durchsuche

 How to Decode JWT Tokens in JavaScript Without External Libraries?

Dekodierung von JWT-Tokens in JavaScript ohne Bibliotheken

Die Dekodierung der Nutzlast eines JWT (JSON Web Token) ist für den Zugriff auf und die Nutzung seiner Ansprüche unerlässlich in einer Frontend-Anwendung. Im Folgenden finden Sie zwei effiziente Methoden zum Dekodieren von JWT-Tokens ohne Bibliotheken:

Browser:

In der Browserumgebung können wir die folgenden Schritte ausführen, um die JSON-Nutzlast zu extrahieren:

  1. Teilen Sie das Token in drei Teile auf, indem Sie den Punkt ('.') als Trennzeichen verwenden.
  2. Dekodieren Sie den zweiten Teil, der die Nutzlast enthält, mit base64url (RFC 4648 §5 ).
  3. Dekodieren Sie die Base64URL-codierte Nutzlast in eine Unicode-Textzeichenfolge.
  4. Dekodieren Sie die Unicode-Zeichenfolge als JSON-Objekt.

JavaScript-Code:

<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 bietet eine unkomplizierte Methode zum Dekodieren von JWT-Nutzlasten:

  1. Split Teilen Sie das Token mit dem Punkt ('.') als Trennzeichen in drei Teile.
  2. Dekodieren Sie den zweiten Teil, der die Nutzlast enthält, mit base64.
  3. Konvertieren Sie die dekodierte Nutzlast, die a ist Pufferobjekt, in ein JSON-Objekt.

JavaScript-Code:

<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>

Hinweis: Diese Methoden validieren die Signatur nicht des JWT-Tokens. Es wird dringend empfohlen, eine Bibliothek zur Signaturüberprüfung zu verwenden, um die Authentizität des Tokens sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich JWT-Tokens in JavaScript ohne externe Bibliotheken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn