Décoder JWT : lire l'en-tête, le payload et l'expiration
Ce décodeur découpe un JSON Web Token en en-tête et payload et affiche les deux en JSON indenté dès que vous collez le jeton. Les horodatages comme exp reçoivent à côté une date locale lisible, et un indicateur vous dit si le jeton a expiré. La vérification de la signature est facultative. Le jeton est lu dans votre navigateur et n'est jamais envoyé.
Décoder un token JWT pas à pas
- Collez le jeton dans le champ JSON Web Token. L'en-tête et le payload s'affichent aussitôt : il n'y a pas de bouton pour décoder.
- Lisez les indicateurs d'état au-dessus du résultat : le jeton est-il expiré, pas encore valide ou sans expiration, et dans quel état est sa signature.
- Avec Copier l'en-tête ou Copier le payload, vous copiez ce bloc en JSON brut. Les notes de date ne sont pas incluses dans la copie.
- Avec Effacer, vous videz le champ pour passer à un autre jeton.
Vous pouvez coller le jeton tel quel : un « Authorization: Bearer » au début, les guillemets autour et les retours à la ligne sont retirés, donc copier depuis un en-tête de requête, une ligne de journal ou une réponse JSON fonctionne. Le champ accepte jusqu'à 100 000 caractères. Les grands nombres et les textes en d'autres langues sont affichés exactement dans les claims, et les longues valeurs passent à la ligne.
Ce que contiennent l'en-tête et le payload
Un JWT est formé de trois parties en base64url reliées par des points : header.payload.signature. Les deux premières sont du JSON simplement encodé, ce qui explique qu'on puisse lire un JWT sans aucun secret. Voici les claims les plus courants :
iss: émetteur, qui a créé le jetonsub: sujet, de qui parle le jetonaud: audience, à qui le jeton est destinéexp: heure d'expirationnbf: jeton non valide avant cette heureiat: heure d'émissionjti: identifiant unique du jeton
L'en-tête contient normalement alg (l'algorithme de signature), typ et parfois kid, l'identifiant de la clé qui a signé.
Token JWT expiré ou encore valide ?
exp, iat, nbf et auth_time sont des horodatages Unix en secondes. L'outil écrit chacun en date et heure locales à côté du nombre, pour que vous le lisiez sans conversion. Les indicateurs au-dessus du résultat utilisent l'horloge de votre appareil :
- Pour le claim
exp, ils indiquent depuis combien de temps le jeton a expiré ou combien de temps il lui reste. - Si
expmanque, vous voyez Sans expiration : le jeton n'a pas de claim exp. - Si
nbfest encore dans le futur, le jeton est signalé comme pas encore valide.
Vérifier la signature d'un JWT
Décoder montre ce que dit un jeton ; seule la signature prouve qu'il n'a pas été modifié. Sous le résultat se trouve Vérifier la signature (facultatif). Laissez Algorithme sur la détection automatique, qui lit alg dans le jeton, ou choisissez-en un vous-même : HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 ou EdDSA. Collez ensuite une clé dans Secret ou clé publique :
- un simple secret pour les algorithmes HS, utilisé exactement tel que vous le saisissez, sans décodage base64 préalable
- une clé publique PEM (
-----BEGIN PUBLIC KEY-----) ou une clé publique RSA au format PKCS#1 - un certificat X.509
- un JWK, ou un JWKS entier, auquel cas la clé est choisie d'après le
kiddu jeton
L'indicateur passe à Signature valide ou Signature invalide. Sans clé, il reste sur Signature non vérifiée. Un jeton qui indique alg none affiche Pas de signature : ce jeton n'est pas signé. Si vous collez une clé privée, l'outil la refuse et demande la clé publique, seule nécessaire pour vérifier. Le contrôle utilise la WebCrypto de votre navigateur ; EdDSA demande un navigateur récent.
Quand un jeton ne se décode pas
L'erreur s'affiche sous le champ et désigne la partie en cause :
- Le texte n'a pas trois parties séparées par deux points, et le message indique combien il en a trouvé.
- L'en-tête, le payload ou la signature n'est pas du base64url valide, souvent à cause d'un caractère perdu à la copie.
- L'en-tête ou le payload n'est pas du texte UTF-8 valide, ou pas du JSON valide.
- Un jeton à cinq parties est un JWE chiffré. Il est reconnu et expliqué, mais impossible à lire sans la clé privée.
Peut-on coller un jeton ici sans risque ?
Le jeton et les clés sont décodés et vérifiés sur votre appareil. Rien n'est envoyé, rien n'est enregistré et aucun compte n'est nécessaire. Un jeton d'accès actif reste toutefois un identifiant : préférez des jetons expirés ou de test quand c'est possible.
Cet outil lit et vérifie les jetons, rien de plus. Il ne crée ni ne signe de JWT et ne déchiffre pas un JWE.
Questions fréquentes
Peut-on décoder un token JWT sans le secret ?
Oui. L'en-tête et le payload d'un JWT sont seulement encodés en base64url, pas chiffrés : quiconque a le jeton peut les lire. Collez-le dans le champ « JSON Web Token » et les deux apparaissent d'un coup. Le secret ou la clé publique ne servent qu'à vérifier la signature, ce qui est facultatif ici.
Comment savoir si un JWT a expiré ?
Collez le jeton et lisez l'indicateur au-dessus du résultat. Il indique depuis combien de temps le jeton a expiré ou le temps qui lui reste, d'après le claim exp. Un jeton sans claim exp affiche « Sans expiration : le jeton n'a pas de claim exp », et si nbf est encore dans le futur, l'indicateur signale qu'il n'est pas encore valide.
Comment convertir une valeur jwt exp en date ?
Inutile de la convertir. exp est un horodatage Unix en secondes, et l'outil écrit la date et l'heure locales correspondantes à côté, dans le bloc « Payload ». Il en va de même pour iat, nbf et auth_time.
Comment vérifier la signature d'un JWT avec une clé publique ?
Dans « Vérifier la signature (facultatif) », laissez « Algorithme » sur la détection automatique ou choisissez celui du jeton, et collez la clé publique dans « Secret ou clé publique ». Une clé PEM (-----BEGIN PUBLIC KEY-----), une RSA PUBLIC KEY, un certificat X.509, un JWK ou un JWKS conviennent. L'indicateur passe ensuite à « Signature valide » ou « Signature invalide ».
Peut-on décoder un token JWT en local, sans l'envoyer à un serveur ?
Oui, c'est ainsi que fonctionne cet outil. Le jeton est découpé, décodé et vérifié dans votre navigateur, sans rien envoyer ni enregistrer. Les vérifications de signature utilisent la WebCrypto du navigateur : ni jeton ni clé ne partent nulle part.
Que contiennent l'en-tête et le payload d'un JWT ?
L'en-tête décrit le jeton : en général son algorithme de signature (alg), son type (typ) et parfois un identifiant de clé (kid). Le payload contient les claims, par exemple qui l'a émis (iss), de qui il parle (sub), à qui il est destiné (aud) et sa date d'expiration (exp). Les deux sont du JSON simple, affiché dans les blocs « En-tête » et « Payload ».
Que signifie alg none dans un JWT ?
Le jeton se déclare non signé : la partie signature est vide et il n'y a rien à vérifier. L'outil affiche « Pas de signature : ce jeton n'est pas signé ». Un serveur ne devrait jamais accepter un tel jeton comme preuve d'identité.
Comment décoder un bearer token ?
Si c'est un JWT, collez-le tel quel. Un « Authorization: Bearer » au début, les guillemets et les retours à la ligne sont retirés pour vous : copiez directement depuis un en-tête de requête ou un journal. Un bearer token opaque qui n'a pas trois parties séparées par des points ne peut pas être décodé, et l'outil indique combien de parties il a trouvées.
Peut-on déchiffrer un JWE ou créer et signer un JWT ici ?
Non. Un jeton à cinq parties est un JWE et son contenu est chiffré : impossible de le lire sans la clé privée. L'outil le reconnaît et le dit au lieu d'afficher une erreur. Il ne génère, ne signe ni ne modifie de jetons : il les lit et les vérifie seulement.
Recommandés
-
Yubico Security Key C NFCLe débogage de connexion est terminé ? Protégez vos propres comptes avec une clé USB-C résistante au phishing.
-
Clé de sécurité YubiKey 5C NFCRéunit OTP, carte à puce et FIDO2 dans une seule clé, pratique pour développer et tester vos flux d'authentification.
-
Support pour portable Rain Design mStandPlace votre portable à hauteur des yeux pendant les longues séances de lecture de jetons et de journaux.
Aide à garder les outils gratuits. ✨
Images non contractuelles. En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.