Heim >Backend-Entwicklung >C++ >Wie dekodiere ich JWT-Tokens mit JwtSecurityTokenHandler und behebe den Fehler „Zeichenfolge muss im kompakten JSON-Format sein'?

Wie dekodiere ich JWT-Tokens mit JwtSecurityTokenHandler und behebe den Fehler „Zeichenfolge muss im kompakten JSON-Format sein'?

Barbara Streisand
Barbara StreisandOriginal
2025-01-06 21:46:40517Durchsuche

How to Decode JWT Tokens using JwtSecurityTokenHandler and Resolve

JWT-Tokens mit JwtSecurityTokenHandler dekodieren

Das Dekodieren von JWT-Tokens kann mit der JwtSecurityTokenHandler-Klasse eine unkomplizierte Aufgabe sein. Wenn Sie jedoch auf Probleme wie den Fehler „Zeichenfolge muss im kompakten JSON-Format vorliegen“ stoßen, erfahren Sie hier, wie Sie das Problem beheben können.

Wie in der Frage erwähnt, erfordert der JwtSecurityTokenHandler, dass die Zeichenfolge in einem bestimmten Format vorliegt: Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL,Base64UrlEncodedSignature.

An Um dieses Problem zu beheben, besteht die Lösung darin, das Ergebnis von ReadToken umzuwandeln oder stattdessen die ReadJwtToken-Methode zu verwenden. So funktioniert es:

Cast-Methode verwenden:

var stream = "[encoded jwt]";
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;

Die tokenS-Variable ist jetzt vom Typ JwtSecurityToken und ermöglicht den Zugriff auf Ansprüche mithilfe von tokenS.Claims.

Verwenden von ReadJwtToken Methode:

var token = "[encoded jwt]";
var handler = new JwtSecurityTokenHandler();
var jwtSecurityToken = handler.ReadJwtToken(token);

Alternativ können Sie den Token direkt mit der ReadJwtToken-Methode lesen. Diese Methode gibt auch ein JwtSecurityToken-Objekt zurück.

Sobald das Token korrekt dekodiert ist, können Sie Ansprüche abrufen mit:

var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value;

Dadurch wird der JTI-Anspruchswert vom Token abgerufen.

Denken Sie daran, dass es wichtig ist, beim Dekodieren von JWT-Tokens mit JwtSecurityTokenHandler das richtige Format zu verwenden, um dies zu vermeiden Fehler und stellen den ordnungsgemäßen Zugriff auf Ansprüche sicher.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich JWT-Tokens mit JwtSecurityTokenHandler und behebe den Fehler „Zeichenfolge muss im kompakten JSON-Format sein'?. 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