Heim >Web-Frontend >js-Tutorial >Wie dekodiere ich JWT-Tokens manuell in JavaScript?

Wie dekodiere ich JWT-Tokens manuell in JavaScript?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 08:00:30533Durchsuche

How to Decode JWT Tokens Manually in JavaScript?

Entwickeln Sie eine Methode zum Dekodieren von JWT-Tokens in JavaScript

Das Dekodieren von JWT-Tokens ohne Verwendung von Bibliotheken ist in JavaScript möglich. Dies kann durch manuelles Extrahieren der Nutzlast aus dem Token erreicht werden.

Schritte zur Nutzlastextraktion:

1. Base64-Dekodierung:

Teilen Sie das Token mithilfe des „.“ in drei Teile (Header, Nutzlast, Signatur) auf. Charakter. Dekodieren Sie den zweiten Teil (Nutzlast) mithilfe der Base64URL-Kodierung, die „ “ und „/“ durch „-“ bzw. „_“ ersetzt.

2. Unicode-Textersetzung:

Die dekodierte Nutzlast ist eine Unicode-Textsequenz. Ersetzen Sie alle nicht druckbaren Zeichen (%-Symbole) durch die entsprechenden ASCII-Codes (z. B. für ein Leerzeichen).

3. JSON-Analyse:

Parsen Sie abschließend den ersetzten Text als JSON, um das Nutzlastobjekt zu erhalten.

Implementierung:

Browser :

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

Hinweis: Durch das Dekodieren der Nutzlast wird die Signatur des Tokens nicht validiert. Es wird davon ausgegangen, dass der Token nicht manipuliert wurde.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich JWT-Tokens manuell in JavaScript?. 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