Aide

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

  1. 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.
  2. 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.
  3. 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.
  4. 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 :

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 :

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 :

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 :

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

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.