Comment décoder les jetons JWT et inspecter les réclamations en toute sécurité
Réponse rapide
Pour décoder un JWT : collez le jeton dans le décodeur JWT, et l'en-tête et la charge utile apparaissent instantanément au format JSON. L'outil décode localement les parties codées en Base64URL : votre jeton ne quitte jamais votre navigateur. N'oubliez pas : le décodage n'affiche que le contenu ; il ne vérifie pas la signature.
Introduction
Un JWT (JSON Web Token) est un format de jeton compact et sécurisé URL utilisé pour l'authentification et l'échange d'informations. Un JWT comporte trois parties séparées par des points : header.payload.signature. L'en-tête spécifie l'algorithme et le type de jeton, la charge utile contient des revendications (ID utilisateur, rôles, expiration) et la signature prouve que le jeton n'a pas été falsifié. Le décodage d'un JWT vous permet d'inspecter son contenu pour le débogage, mais le décodage ne vérifie pas l'authenticité. Ce guide vous montre comment décoder les JWT en toute sécurité dans votre navigateur.
Pas à pas
-
Ouvrez l'outil de décodage JWT
Accédez à la page de l'outil Décodeur JWT. L'outil accepte n'importe quelle chaîne JWT (trois parties codées en Base64URL séparées par des points).
-
Collez votre jeton JWT
Collez le JWT dans le champ de saisie. Un JWT typique ressemble à : eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyMSJ9.signature. L'outil détecte automatiquement les trois pièces.
-
Examinez l'en-tête décodé
L'outil Base64URL décode la première partie et l'affiche sous la forme JSON. L'en-tête contient généralement « alg » (algorithme, par exemple HS256) et « typ » (type, généralement « JWT »).
-
Examiner la charge utile décodée (réclamations)
L'outil décode la deuxième partie et affiche les revendications au format JSON. Les revendications courantes incluent « sub » (sujet/ID utilisateur), « iat » (émis à), « exp » (expiration) et « rôle » (rôle d'utilisateur).
-
Vérifiez la signature (troisième partie)
L'outil affiche la partie signature. Remarque : le décodage ne vérifie PAS la signature. Pour vérifier, vous avez besoin de la clé de signature et d'une bibliothèque de vérification. Ne faites jamais confiance aux affirmations d'un JWT sans vérifier la signature côté serveur.
Exemples
Décoder un simple JWT
Saisir: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTY5MzUyNjQwMH0.signature
Sortir: Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"user1","name":"Alice","iat":1693526400}
JWT avec réclamation d'expiration
Saisir: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY5MzYxMjgwMH0.sig
Sortir: Header: {"alg":"HS256"}
Payload: {"sub":"admin","exp":1693612800}
Problèmes courants
- Confondre décoder et vérifier : le décodage d'un JWT ne lit que son contenu ; cela ne prouve PAS que le jeton est authentique. Vérifiez toujours la signature côté serveur avec la clé de signature.
- Faire confiance aux jetons expirés : vérifiez la revendication « exp » et rejetez les jetons expirés. La valeur « exp » est un horodatage Unix en secondes.
- Base64 vs Base64URL —JWT utilise le codage Base64URL (pas de remplissage, - et _ au lieu de + et /). Un décodeur Base64 standard échouera sur les pièces JWT.
- Données sensibles dans la charge utile — Les charges utiles JWT sont lisibles par toute personne possédant le jeton. Ne stockez pas de mots de passe, de numéros de carte de crédit ou d'autres secrets dans la charge utile.
Conseils
- Vérifiez toujours la signature JWT côté serveur avant de faire confiance à toute revendication : le décodage seul ne constitue pas une authentification.
- Vérifiez les revendications « exp » (expiration) et « nbf » (pas avant) pour vous assurer que le jeton est valide pour l'heure actuelle.
- Utilisez des jetons de courte durée (15 à 60 minutes) avec des jetons d'actualisation pour les longues sessions : minimisez les dommages en cas de fuite d'un jeton.
- Utilisez notre décodeur JWT pour un débogage local et sécurisé : votre jeton ne quitte jamais votre navigateur.