Décodeur JWT

Décodez n’importe quel JSON Web Token dans votre navigateur : en-tête et payload, exp, iat et nbf en vraies dates dans votre fuseau horaire, et expiration.

Décodé dans votre navigateur. Votre jeton n’est jamais envoyé à notre serveur.

Résumé

En-tête (header)


                    

Payload (claims)


                    

Jeton et signature

Lisez n’importe quel JWT sans l’envoyer nulle part

Collez un JSON Web Token et le décodeur le sépare en trois parties : l’en-tête (l’algorithme de signature), le payload (les claims : qui est l’utilisateur, à quoi il a accès et quand le jeton expire) et la signature. Le JSON est mis en forme pour être lu d’un coup d’œil.

Les claims de temps deviennent de vraies dates. exp, iat et nbf sont affichés dans votre fuseau horaire, en UTC et sous la forme « dans 20 minutes » ou « il y a 3 jours », et le statut indique tout de suite si le jeton est encore valide, expiré ou pas encore valide.

Un jeton donne souvent accès à de vrais comptes : tout est donc décodé dans votre navigateur. Le jeton n’est jamais envoyé à notre serveur, ni journalisé, ni stocké, ce qui est plus sûr que de le coller dans un chatbot ou sur un site qui l’envoie à un serveur.

Comment décoder un JWT

  1. Copiez le jeton depuis votre application, un en-tête Authorization, un cookie ou les outils de développement du navigateur.
  2. Collez-le dans la zone. Le préfixe Bearer, les guillemets, les espaces et les retours à la ligne sont supprimés automatiquement.
  3. Lisez le résumé : statut, algorithme, émetteur, sujet, audience et heures exactes d’émission et d’expiration.
  4. Utilisez les boutons de copie pour reprendre le JSON mis en forme de l’en-tête ou du payload dans un rapport de bug ou vos notes.

Ce que signifient les claims courants

  • exp (expiration time) : après ce moment, le jeton doit être refusé.
  • iat (issued at) : la date de création du jeton.
  • nbf (not before) : le jeton ne doit pas être accepté avant ce moment.
  • iss (issuer) : qui a créé le jeton, souvent l’URL de votre serveur de connexion.
  • sub (subject) : la personne concernée par le jeton, en général un identifiant d’utilisateur.
  • aud (audience) : l’application ou l’API à laquelle le jeton est destiné.
  • alg et kid (dans l’en-tête) : l’algorithme de signature, comme HS256 ou RS256, et l’identifiant de la clé qui a signé le jeton.

Les dates d’un JWT sont des valeurs NumericDate : le nombre de secondes écoulées depuis le 1er janvier 1970 UTC. Le décodeur les convertit pour vous, inutile de passer par un convertisseur de timestamp.

Conseils de débogage

  • Si une API répond 401 juste après la connexion, vérifiez d’abord exp et nbf. Une horloge de serveur en avance ou en retard de quelques minutes est une cause fréquente ; la plupart des bibliothèques tolèrent un petit décalage.
  • Une date située des dizaines de milliers d’années dans le futur signifie que la valeur a été écrite en millisecondes au lieu de secondes. Le décodeur vous prévient dans ce cas.
  • Comparez aud et iss avec ce qu’attend votre API. Un jeton émis pour une autre application ou un autre environnement (recette au lieu de production) provoque souvent des erreurs « jeton invalide ».
  • Un en-tête dont alg vaut none signifie que le jeton n’est pas signé. N’acceptez jamais ce type de jeton en production.

Limites et points à connaître

  • Décoder n’est pas vérifier. N’importe qui peut créer un jeton avec n’importe quels claims ; seule la vérification de la signature avec la bonne clé, sur votre serveur, prouve qu’il est authentique. Cet outil ne vérifie pas les signatures.
  • Le payload d’un JWT classique est seulement encodé, pas chiffré. Toute personne qui possède le jeton peut le lire : ne mettez jamais de mots de passe ni de secrets dans les claims.
  • Les jetons chiffrés (JWE, à cinq parties) sont illisibles sans la clé : seul leur en-tête est affiché.
  • Les nombres sont affichés exactement comme dans le jeton : les longs identifiants numériques ne sont jamais arrondis.

Questions fréquentes

Est-ce sûr de coller un vrai jeton ici ?

Oui. Le décodage se fait en JavaScript dans votre navigateur et le jeton n’est jamais envoyé à notre serveur. Traitez quand même les jetons actifs comme des mots de passe : ne les partagez pas dans des captures ou des discussions, et laissez-les expirer.

Cet outil peut-il me dire si un jeton est valide ?

Il indique si le jeton a expiré ou n’est pas encore valide, d’après ses dates. Il ne peut pas dire si la signature est authentique, car il faudrait la clé secrète ou publique que seul votre serveur doit détenir.

Pourquoi mon jeton apparaît-il expiré alors que je viens de le recevoir ?

Vérifiez l’horloge du serveur qui l’a émis et assurez-vous que exp est en secondes et non en millisecondes. Si iat est lui aussi dans le passé de plusieurs heures, l’horloge du serveur est probablement fausse.

Quelle différence entre un décodeur JWT et un décodeur Base64 ?

Un JWT, ce sont trois parties encodées en Base64URL reliées par des points. Un décodeur Base64 lit une partie à la fois, alors que le décodeur JWT découpe le jeton pour vous, gère l’alphabet compatible URL et l’absence de remplissage, et convertit les dates en heures lisibles.

Fonctionne-t-il hors ligne ?

Oui. Une fois la page chargée, vous pouvez couper Internet et continuer à décoder des jetons.

Outils associés

  • Décodeur Base64: Décodez des chaînes Base64 en texte lisible instantanément. Inspectez les en-têtes d’authentification, jetons, payloads d’API et e-mails. Décodeur gratuit.
  • Validateur et formateur JSON: Validez et formatez du JSON en ligne. Repérez les erreurs de syntaxe et transformez du JSON minifié en code lisible et indenté. Gratuit, sans inscription.
  • Décodeur d’URL: Décodez les URL et chaînes de requête encodées en pourcentage pour les rendre lisibles. Transforme %20, %26 et %C3%A9 instantanément. Gratuit.
  • Encodeur Base64: Encodez n’importe quel texte en Base64 instantanément. Utile pour les data URI, l’authentification HTTP Basic, les e-mails et les API. Encodeur gratuit.

Outils similaires

Décodeur Base64

Décodez des chaînes Base64 en texte lisible instantanément. Inspectez les en-têtes d’authentification, jetons, payloads d’API et e-mails. Décodeur gratuit.

Validateur et formateur JSON

Validez et formatez du JSON en ligne. Repérez les erreurs de syntaxe et transformez du JSON minifié en code lisible et indenté. Gratuit, sans inscription.

Décodeur d’URL

Décodez les URL et chaînes de requête encodées en pourcentage pour les rendre lisibles. Transforme %20, %26 et %C3%A9 instantanément. Gratuit.

Outils gratuits populaires