Menu
Français

Décodeur JWT

Disséquez et vérifiez les JSON Web Tokens pièce par pièce.

Dernière mise à jour

Algorithme
EncodéCollez un JSON Web Token
Décodé
L’en-tête et la charge utile apparaissent ici — les jetons restent dans votre navigateur.

C'est quoi un décodeur JWT ?

Un décodeur JWT découpe un JSON Web Token en ses trois morceaux — header, payload et signature — puis applique un Base64URL-decode sur les deux premiers pour les afficher en JSON lisible. C'est l'outil que l'on sort en permanence pour déboguer un flow de login, une autorisation, des claims de session ou un problème d'expiration.

Décoder un JWT, ce *n'est pas* lui faire confiance. Le header et le payload sont lisibles par conception : ils sont seulement encodés en Base64URL, pas chiffrés. C'est la vérification qui contrôle si le token a bien été signé par l'émetteur attendu et n'a pas été modifié.

Un JWT a la forme header.payload.signature. Chaque partie est encodée en Base64URL et séparée par un point. Le header indique l'algorithme de signature, le payload contient les claims (qui est l'utilisateur, quand le token expire, ce qu'il a le droit de faire), et la signature permet au serveur de prouver que le token n'a pas été altéré.

Ce que vous allez retenir en décodant des JWT

  • Un JWT, c'est trois parties encodées en Base64URL séparées par des points : header.payload.signature.
  • Les claims standards comme sub, role, iat, nbf et exp décrivent l'identité, les permissions, la date d'émission et la date d'expiration.
  • Un payload décodé peut être modifié par n'importe qui — seule la signature permet au serveur de détecter une altération.

Décoder un JWT étape par étape

  1. Coller le token complet

    Collez le JWT dans le champ d'entrée. Il doit ressembler à xxxx.yyyy.zzzz — trois parties encodées en Base64URL et reliées par des points.

  2. Lire le header

    Le header indique l'algorithme de signature (alg) et le type de token. Méfiez-vous de "alg": "none" : ça veut dire que le token n'est pas signé et qu'on ne peut pas s'y fier.

  3. Lire les claims du payload

    Le payload est le JSON qui contient tous les claims. Repérez sub (identifiant utilisateur), exp (expiration), iat (date d'émission), ainsi que les claims maison ajoutés par votre appli, du genre role ou tenant.

  4. Vérifier l'expiration

    Convertissez le timestamp Unix exp en date — s'il est dans le passé, le token est expiré et une API correctement écrite le rejettera.

  5. Vérifier la signature (optionnel)

    Si vous avez le secret ou la clé publique, collez-le dans le vérificateur pour confirmer que la signature est valide. Le contenu du token n'est digne de confiance que si la signature passe.

Les claims standards d'un JWT

Voici les claims enregistrés définis par la spec JWT (RFC 7519). Chaque application peut bien sûr ajouter ses propres claims personnalisés à côté.

ClaimNomSignification
issIssuerQui a créé et signé le token
subSubjectÀ qui se rapporte le token — en général un identifiant utilisateur
audAudienceÀ qui le token est destiné
expExpirationTimestamp Unix au-delà duquel le token n'est plus valide
nbfNot BeforeLe token ne doit pas être accepté avant cette date
iatIssued AtDate de création du token
jtiJWT IDIdentifiant unique — pratique pour gérer la révocation
algAlgorithme (header)Algorithme de signature : HS256, RS256, ES256, …

Exemples de JWT à tester

Inspecter un JWT classique

Token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsInJvbGUiOiJzdHVkZW50IiwiZXhwIjoxNzEwMDAwMDAwfQ.Q3hH8yzqI2OsHJ1Lyj8jJfJPa5ZpIVlh1FhJpJbqMcs

Header
{  "alg": "HS256",  "typ": "JWT"}
Payload
{  "sub": "user_123",  "role": "student",  "exp": 1710000000}

Le header annonce HS256 (un algorithme à secret partagé). Le payload identifie l'utilisateur, son rôle et l'instant où le token expire. La signature, c'est la troisième partie. (Token d'illustration uniquement — la signature ne sera valide avec aucun secret réel.)

Voir si un token est expiré

Claim du payload
{  "exp": 1710000000}

exp est un timestamp Unix en secondes. Convertissez-le en date — si elle est passée, le token est expiré et un backend bien écrit le rejettera.

Repérer un dangereux algorithme « none »

Header
{  "alg": "none",  "typ": "JWT"}

Si un serveur accepte "alg": "none", un attaquant peut forger n'importe quel payload sans signature. À rejeter systématiquement en prod.

Les pièges classiques avec les JWT

  • Mettre des mots de passe, des secrets ou des données personnelles sensibles dans le payload. Un JWT est lisible, pas chiffré.
  • Décoder un token et le considérer comme valide sans avoir vérifié la signature.
  • Confondre « lisible en Base64URL » et « chiffré » — les payloads JWT sont volontairement faciles à lire.

FAQ JWT

C'est quoi un JWT ?
JWT signifie JSON Web Token. C'est un format de token compact, signé et URL-safe utilisé pour transporter des claims entre deux parties — le plus souvent entre un serveur et un navigateur, pour représenter un utilisateur connecté.
Comment décoder un JWT ?
Collez le token dans un décodeur JWT, ou découpez-le sur les points et faites un Base64URL-decode sur chacune des deux premières parties. Le header et le payload reviennent en JSON ; la troisième partie, c'est la signature.
Comment savoir si un JWT est expiré ?
Regardez le claim exp dans le payload. C'est un timestamp Unix en secondes. Si l'heure actuelle est postérieure à exp, le token est expiré.
N'importe qui peut-il décoder un JWT ?
Oui. Le header et le payload sont encodés en Base64URL, pas chiffrés. La signature prouve seulement que le token n'a pas été altéré — elle ne masque pas son contenu.
Que veut dire « vérifier un JWT » ?
La vérification consiste à recalculer la signature avec le secret ou la clé publique attendus, puis à la comparer à celle du token. Si ça correspond, on peut faire confiance au payload : il est intact et provient bien de l'émetteur.
Faut-il mettre des mots de passe dans un JWT ?
Non. Toute personne qui possède le token peut lire le payload. N'y stockez que des identifiants et des claims non sensibles, et appuyez-vous sur des durées de vie courtes plus des refresh tokens pour la sécurité.

En savoir plus

Autres outils pour développeurs

Apprendre à coder avec Coddy

COMMENCER