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!