Décodeur JWT
Collez un JSON Web Token, voyez l'en-tête et la charge utile décodés. Validation locale, sans envoi.
Qu'est-ce qu'un JWT ?
Un JSON Web Token (JWT, prononcé « jot ») est un moyen compact et compatible avec les URL de transporter du JSON signé entre des parties — le plus souvent un serveur d'authentification et votre application. Un JWT comporte trois parties encodées en base64url séparées par des points : header.payload.signature. L'en-tête indique l'algorithme de signature utilisé ; la charge utile est un objet JSON contenant des revendications (sujet, expiration, données personnalisées) ; la signature permet au destinataire de vérifier que le jeton n'a pas été altéré. La norme est définie dans la RFC 7519.
Comment utiliser ce décodeur
Collez un JWT dans le champ ci-dessus. L'outil découpe la chaîne aux points, décode en base64url les deux premiers segments et affiche joliment le JSON résultant dans deux panneaux — En-tête et Charge utile. Le troisième panneau montre la chaîne brute de la signature. Si la charge utile contient les revendications iat, nbf ou exp, l'outil les affiche également sous forme d'horodatages UTC lisibles et indique si le jeton a expiré. Le décodage est en direct : dès que vous avez fini de taper, les panneaux se mettent à jour.
Décodé ≠ vérifié
Un décodeur JWT est un outil de débogage, pas un outil de sécurité. N'importe qui peut décoder un JWT — l'encodage est réversible par conception. C'est la signature qui rend le jeton fiable, et vérifier une signature nécessite la clé secrète de l'émetteur (HS256) ou sa clé publique (RS256, ES256). Ne faites jamais confiance au contenu d'un JWT en production sans avoir d'abord vérifié sa signature. Utilisez la bibliothèque JWT fournie avec votre framework pour le faire ; n'écrivez jamais la vôtre.
Revendications JWT standard
| Revendication | Nom | Signification |
|---|---|---|
iss | Émetteur | Identifie l'entité qui a émis le jeton (par ex. l'URL d'un serveur d'authentification). |
sub | Objet | Identifie le principal auquel se rapporte le jeton — généralement un identifiant utilisateur. |
aud | Audience | Les destinataires auxquels le jeton est destiné. Les destinataires doivent rejeter les jetons qui ne leur sont pas adressés. |
exp | Date d'expiration | Horodatage Unix après lequel le jeton ne doit pas être accepté. |
nbf | Pas avant | Horodatage Unix avant lequel le jeton ne doit pas être accepté. |
iat | Émis le | Horodatage Unix auquel le jeton a été émis. |
jti | Identifiant JWT | Identifiant unique du jeton, utile pour les listes de révocation. |
Questions fréquentes
Mon JWT est-il envoyé quelque part ?
Pourquoi cet outil ne vérifie-t-il pas la signature ?
jwt pour vérifier les signatures dans un environnement contrôlé.J'obtiens « Ce n'est pas un JWT » — qu'est-ce qui ne va pas ?
Bearer isolé copié depuis un en-tête HTTP (supprimez-le), seule la charge utile a été collée (vous devez aussi inclure l'en-tête et la signature), ou le jeton est en réalité un JWE (chiffré) qui comporte cinq segments et n'est pas décodable sans la clé privée du destinataire.Pourquoi la charge utile est-elle en base64url et non en base64 standard ?
+, / et le remplissage = — aucun n'est compatible avec les URL. Le base64url remplace + par -, / par _, et supprime entièrement le remplissage. Le résultat peut être intégré dans une URL ou un en-tête HTTP sans échappement supplémentaire. Ce décodeur reconvertit en base64 standard avant d'appeler le atob du navigateur.Que signifie alg: none ?
alg: none existe dans la spécification mais est dangereux en pratique : une célèbre catégorie de vulnérabilités exploitait des bibliothèques qui acceptaient les jetons alg: none comme s'ils étaient signés. Si vous voyez cela dans un jeton de production, considérez-le comme une découverte sérieuse.