Décoder un JWT en ligne — inspecter un JSON Web Token
Décodez le header et le payload d’un JWT et contrôlez l’expiration (sans vérifier la signature)
Traitement dans le navigateur · aucun envoi de fichier
Cet outil décode seulement le jeton. Il ne vérifie PAS la signature : un jeton lisible n’est donc pas forcément valide ni digne de confiance. Rien ne quitte votre navigateur.
Présentation
Un JWT (JSON Web Token) transporte des déclarations (claims), par exemple l’identité d’un utilisateur. Il se compose de trois parties séparées par des points : header, payload et signature. Les deux premières sont du JSON encodé en base64url, donc lisibles par n’importe qui. Cet outil déballe le jeton et présente son contenu proprement, mais ne vérifie pas la signature.
Mode d’emploi
- Collez le jeton dans la zone de saisie. Un préfixe
Beareret les sauts de ligne sont ignorés. - Le header et le payload s’affichent en JSON indenté, chacun avec son bouton de copie.
- Si le payload contient exp, iat ou nbf, ils s’affichent en dates lisibles avec le temps restant ou écoulé (« dans 3 heures », « il y a 2 jours »), et l’état d’expiration est indiqué.
- Si le jeton est mal formé, l’erreur précise quelle partie pose problème. Un jeton chiffré en cinq parties (JWE) est signalé comme illisible sans sa clé.
Fonctionnement
- La structure suit la RFC 7519 (JWT) et la RFC 7515 (JWS) : exactement trois parties séparées par des points.
- Chaque partie est décodée depuis le base64url défini par la RFC 4648 (
-et_, remplissage facultatif) et lue en UTF-8. - Le header et le payload doivent être des objets JSON ; un tableau ou une chaîne est signalé comme erreur.
- exp, iat et nbf ne sont interprétés comme des secondes que s’il s’agit de nombres, puis affichés au format de votre langue et en ISO 8601 (UTC).
- L’état d’expiration compare seulement l’heure actuelle à exp et nbf. La signature n’est pas vérifiée : les jetons avec alg none ou une signature incorrecte se décodent exactement de la même façon.
Exemples
| Partie | Contenu |
|---|---|
| Début du jeton | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 |
| header | {"alg": "HS256", "typ": "JWT"} |
| payload | {"sub": "1234567890", "name": "John Doe", "iat": 1516239022} |
| iat | 2018-01-18T01:30:22Z |
Ce jeton est l’exemple d’entraînement habituel des introductions aux JWT. Un jeton dont le payload contient {"name": "Françoise Lefèvre"} se décode lui aussi sans caractères brouillés.
Questions fréquentes
Cet outil vérifie-t-il la signature du JWT ?
Non, il se contente de décoder. Pouvoir lire un jeton ne signifie pas qu’il est authentique ni valide. La confiance se décide en vérifiant la signature avec la clé secrète ou publique sur votre serveur.
Est-il prudent de coller un jeton ici ?
Le décodage a lieu uniquement dans votre navigateur et le jeton n’est pas transmis. Évitez tout de même de coller des jetons de production actifs dans des écrans ou documents partagés.
Les accents et autres écritures du payload s’affichent-ils correctement ?
Oui. Un JWT est du JSON UTF-8 encodé en base64url, et cet outil le décode en UTF-8 : les noms accentués, en coréen, en chinois ou avec des emojis s’affichent intacts.
Quel type de temps représente la valeur exp ?
Une NumericDate, c’est-à-dire un nombre de secondes depuis le 1er janvier 1970 UTC. L’outil l’affiche dans la langue et le fuseau horaire de votre navigateur, avec la forme ISO 8601 en UTC.