Aller au contenu

Décodeur et débogueur JWT

  • Fonctionne sur votre appareil
  • Fonctionne hors ligne une fois chargé

Collez un JSON Web Token pour lire son en-tête et sa charge utile, voir quand il expire et vérifier la signature avec un secret ou une clé publique. Les claims de temps s’affichent en dates lisibles. Les jetons sont décodés dans votre navigateur et ne sont jamais transmis.

Comment ça marche

  1. Collez votre JWT.
  2. Lisez l’en-tête, les claims et l’état d’expiration.
  3. Saisissez si vous voulez un secret ou une clé publique pour vérifier la signature.

Pourquoi l’utiliser

  • Dates lisibles pour exp, iat et nbf.
  • Vérifie les signatures HMAC, RSA et ECDSA.
  • Signale les algorithmes à risque comme none.
  • Votre jeton ne quitte jamais la page.

Lire et vérifier des JSON Web Tokens

Ce que contient un jeton

Un JSON Web Token se compose de trois morceaux de texte Base64 joints par des points : un en-tête, une charge utile et une signature. L’en-tête indique l’algorithme de signature ; la charge utile contient les claims, comme l’identité de l’utilisateur et la date d’expiration du jeton ; la signature prouve que celui qui a créé le jeton connaissait la clé. Collez un jeton et les deux premiers morceaux sont décodés et affichés en JSON, avec les claims standard expliqués en mots simples :

ClaimSignification
issÉmetteur : le service qui a créé le jeton
subSujet : généralement l’identifiant de l’utilisateur
audAudience : le service auquel le jeton est destiné
expExpiration : passé cet instant, le jeton doit être refusé
nbfPas valide avant cet instant
iatÉmis le : quand le jeton a été créé
Les heures sont des timestamps Unix ; le décodeur les affiche en dates et vous dit si le jeton a expiré.

Décoder n’est pas vérifier

N’importe qui peut décoder un JWT ; la charge utile n’est pas chiffrée, seulement encodée. Ne mettez donc jamais de secrets dans un jeton, et ne faites jamais confiance aux claims d’un jeton tant que sa signature n’a pas été vérifiée. Pour en vérifier un ici, collez la clé :

  • HS256, HS384, HS512 utilisent un seul secret partagé, le même des deux côtés. Cochez l’option Base64 si le secret est stocké ainsi.
  • Les algorithmes RS, PS et ES utilisent une paire de clés : le jeton est signé avec une clé privée et vérifié avec la clé publique, que vous pouvez coller sous forme de clé PEM, de certificat ou de JWK.

Un jeton signé avec alg: none n’a aucune signature, et le décodeur vous prévient : un serveur qui l’accepterait ferait confiance à quiconque modifie la charge utile. Les bibliothèques doivent toujours savoir quels algorithmes accepter.

Gardez les jetons de production privés

Un jeton valide est une clé : celui qui le détient peut agir comme cet utilisateur jusqu’à son expiration. C’est pourquoi ce décodeur tourne entièrement dans votre navigateur, et pourquoi il faut se méfier des outils en ligne qui envoient le jeton à un serveur. Préférez des jetons de test quand c’est possible, et considérez comme divulgué tout vrai jeton collé dans un endroit public.

Créer des jetons de test

L’onglet Encoder signe des jetons avec votre propre en-tête, votre charge utile et votre clé, avec n’importe lequel des douze algorithmes. Il peut ajouter l’heure d’émission et une expiration un nombre choisi de minutes plus tard. Pratique pour tester la façon dont une API gère les jetons expirés, les mauvaises audiences ou les claims manquants, sans toucher à une vraie connexion.

En cas de problème

  • Il indique que le jeton n’est pas valide. Un JWT doit contenir exactement deux points. Vérifiez que rien n’a été coupé lors de la copie ; un Bearer en tête est retiré pour vous.
  • La signature ne se vérifie pas. La clé est fausse, le secret doit être lu en Base64, ou le jeton a été modifié après la signature.
  • Il indique que le jeton a expiré, mais le serveur l’accepte. Le serveur tolère peut-être un décalage d’horloge, ou ne vérifie pas du tout l’expiration, ce qui mérite d’être corrigé.

Questions et réponses

Peut-on coller un vrai jeton sans risque ?

Le décodage est local et rien n’est envoyé. Traitez malgré tout les jetons de production comme des secrets, et préférez des jetons de test quand c’est possible.

Peut-il vérifier une signature ?

Oui, avec le secret partagé pour HS256 ou la clé publique pour RS256 et ES256.

Pourquoi mon jeton apparaît-il comme expiré ?

Le claim exp est un temps Unix. L’outil le compare à l’horloge de votre appareil.

Échap