Maison >développement back-end >C++ >Comment décoder les jetons JWT à l'aide de JwtSecurityTokenHandler et résoudre les erreurs « la chaîne doit être au format JSON compact » ?
Décoder les jetons JWT avec JwtSecurityTokenHandler
Le décodage des jetons JWT peut être une tâche simple à l'aide de la classe JwtSecurityTokenHandler. Cependant, si vous rencontrez des problèmes tels que l'erreur « la chaîne doit être au format JSON compact », voici comment la résoudre.
Comme mentionné dans la question, JwtSecurityTokenHandler exige que la chaîne soit dans un format spécifique : Base64UrlEncodedHeader.Base64UrlEndcodedPayload.OPTIONAL,Base64UrlEncodedSignature.
Pour résoudre ce problème, la solution consiste à convertir le résultat de ReadToken ou à utiliser la méthode ReadJwtToken à la place. Voici comment cela fonctionne :
Utilisation de la méthode Cast :
var stream = "[encoded jwt]"; var handler = new JwtSecurityTokenHandler(); var jsonToken = handler.ReadToken(stream); var tokenS = jsonToken as JwtSecurityToken;
La variable tokenS est désormais de type JwtSecurityToken, permettant l'accès aux revendications à l'aide de tokenS.Claims.
Utilisation de ReadJwtToken Méthode :
var token = "[encoded jwt]"; var handler = new JwtSecurityTokenHandler(); var jwtSecurityToken = handler.ReadJwtToken(token);
Vous pouvez également lire directement le jeton à l'aide de la méthode ReadJwtToken. Cette méthode renvoie également un objet JwtSecurityToken.
Une fois le jeton correctement décodé, vous pouvez récupérer les réclamations en utilisant :
var jti = tokenS.Claims.First(claim => claim.Type == "jti").Value;
Cela récupérera la valeur de réclamation jti du jeton.
N'oubliez pas qu'il est essentiel d'utiliser le format correct lors du décodage des jetons JWT avec JwtSecurityTokenHandler pour éviter les erreurs et garantir un bon fonctionnement. accès aux réclamations.
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!