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 ... #
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 ... #
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 ... #
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!