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!