Heim > Backend-Entwicklung > C++ > Wie dekodiere ich JWT-Tokens in .NET Core und vermeide häufige Fehler?

Wie dekodiere ich JWT-Tokens in .NET Core und vermeide häufige Fehler?

Patricia Arquette
Freigeben: 2025-01-06 21:57:44
Original
524 Leute haben es durchsucht

How to Decode JWT Tokens in .NET Core and Avoid Common Errors?

JWT-Tokens mit .NET Core dekodieren

In .NET Core umfasst das Dekodieren von JWT-Tokens die Verwendung des JwtSecurityTokenHandler. Beim Dekodieren von Token im kompakten JSON-Format können jedoch häufige Fehler auftreten.

Häufiges Problem: Ungültiges JSON-Format

Ein häufiger Fehler ist „Die Zeichenfolge muss in sein kompaktes JSON-Format ...“ Dies tritt auf, wenn das Eingabetoken nicht im erwarteten JSON Web Token (JWT)-Format vorliegt, das aus drei durch Punkte getrennten Teilen besteht: Header, Nutzlast und Signatur.

Lösung:

Um dieses Problem zu beheben, stellen Sie sicher, dass das Eingabetoken ein gültiges JWT im kompakten JSON-Format ist. Sie können Online-Tools wie jwt.io verwenden, um das Format des Tokens zu überprüfen.

Forgot Casting the Result:

Ein weiterer Fehler, der auftreten kann, ist, wenn das Ergebnis von ReadToken ist nicht in den entsprechenden Typ (z. B. JwtSecurityToken) umgewandelt, auf den zugegriffen werden kann Ansprüche.

Lösung:

Um auf Ansprüche vom JWT-Token zuzugreifen, müssen Sie das Ergebnis von ReadToken in JwtSecurityToken umwandeln, wie unten gezeigt:

var jsonToken = handler.ReadToken(stream);
var tokenS = jsonToken as JwtSecurityToken;
#region ... code to get claims ... #
Nach dem Login kopieren

Alternativ können Sie die Überladungsmethode ReadJwtToken verwenden, um die Ansprüche ohne direkt abzurufen Casting:

var token = handler.ReadJwtToken(stream);
#region ... code to get claims ... #
Nach dem Login kopieren

Auf Ansprüche zugreifen

Sobald Sie das JwtSecurityToken- oder JwtSecurityToken-Objekt haben, können Sie über dessen Claims-Eigenschaft auf Ansprüche zugreifen. Jeder Anspruch wird als Anspruchsobjekt mit einer Typ- und Werteigenschaft dargestellt.

var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value;
#region ... code to access other claims ... #
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie dekodiere ich JWT-Tokens in .NET Core und vermeide häufige Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage