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