Heim  >  Artikel  >  Web-Frontend  >  Wie dekodiere ich JWT-Tokens in JavaScript ohne Bibliotheken?

Wie dekodiere ich JWT-Tokens in JavaScript ohne Bibliotheken?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 18:30:28902Durchsuche

How to Decode JWT Tokens in JavaScript Without Libraries?

Dekodierung von JWT-Tokens in JavaScript ohne Bibliotheken

Die Dekodierung der Nutzlast eines JavaScript-Web-Tokens (JWT) kann erreicht werden, ohne auf externe Bibliotheken angewiesen zu sein . Dies bietet eine bessere Kontrolle über den Dekodierungsprozess und ermöglicht eine nahtlose Integration mit der Front-End-Anwendung.

Dekodierungsprozess

Das JWT-Format besteht aus drei durch Punkte getrennten Segmenten. wobei das zweite Segment die Nutzlast enthält. So dekodieren Sie die Nutzlast:

1. Extrahieren Sie das Nutzlastsegment:

const payloadSegment = token.split('.')[1];

2. Dekodieren Sie die Nutzlast (Browser)

Bei Browsern wird die Nutzlast mit base64url kodiert, was sich von normalem base64 unterscheidet. Dekodieren Sie es wie folgt:

const payload = decodeURIComponent(window.atob(payloadSegment).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));

3. Dekodieren Sie die Nutzlast (Node.js)

In Node.js wird die Nutzlast nicht mit base64url kodiert. Dekodieren Sie es mit dem Puffermodul:

const payload = Buffer.from(payloadSegment, 'base64').toString();

4. Analysieren Sie die Nutzlast-JSON

Konvertieren Sie die dekodierte Nutzlastzeichenfolge in JSON:

const payloadObject = JSON.parse(payload);

Beispiel:

Gegebenes Token: xxxxxxxxxx. XXXXXXXX.xxxxxxxx, die entschlüsselte Nutzlast würde wie folgt aussehen:

{exp: 10012016, name: "john doe", scope: ["admin"]}

Hinweis:

Diese Methode extrahiert lediglich die Nutzlast, ohne die Tokensignatur zu validieren. Der Token könnte vor der Dekodierung manipuliert worden sein.

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