Maison >développement back-end >C++ >Comment décoder les jetons JWT dans .NET Core et éviter les erreurs courantes ?
Décodage des jetons JWT avec .NET Core
Dans .NET Core, le décodage des jetons JWT implique l'utilisation du JwtSecurityTokenHandler. Cependant, des erreurs courantes peuvent survenir lors du décodage des jetons au format JSON compact.
Problème courant : format JSON invalide
Une erreur courante rencontrée est "La chaîne doit être dans format JSON compact...". Cela se produit lorsque le jeton d'entrée n'est pas au format JSON Web Token (JWT) attendu, qui est composé de trois parties séparées par des points : en-tête, charge utile et signature.
Solution :
Pour résoudre ce problème, assurez-vous que le jeton d'entrée est un JWT valide au format JSON compact. Vous pouvez utiliser des outils en ligne comme jwt.io pour vérifier le format du jeton.
J'ai oublié de diffuser le résultat :
Une autre erreur qui peut se produire est lorsque le résultat de ReadToken est pas converti en type approprié (par exemple, JwtSecurityToken) pour accéder à réclamations.
Solution :
Pour accéder aux réclamations à partir du jeton JWT, vous devez convertir le résultat de ReadToken en JwtSecurityToken, comme indiqué ci-dessous :
var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken; #region ... code to get claims ... #
Vous pouvez également utiliser la méthode de surcharge ReadJwtToken pour obtenir directement les réclamations sans casting :
var token = handler.ReadJwtToken(stream); #region ... code to get claims ... #
Accès aux revendications
Une fois que vous avez l'objet JwtSecurityToken ou JwtSecurityToken, vous pouvez accéder aux revendications à l'aide de sa propriété Claims. Chaque revendication est représentée sous la forme d'un objet Claim avec une propriété Type et Value.
var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value; #region ... code to access other claims ... #
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!