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.
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
- Copiez le jeton depuis votre application, un en-tête
Authorization, un cookie ou les outils de développement du navigateur. - Collez-le dans la zone. Le préfixe
Bearer, les guillemets, les espaces et les retours à la ligne sont supprimés automatiquement. - Lisez le résumé : statut, algorithme, émetteur, sujet, audience et heures exactes d’émission et d’expiration.
- 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é.algetkid(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
expetnbf. 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
audetissavec 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
algvautnonesignifie 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é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.
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é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
Créez des mots de passe forts et aléatoires en un clic. Choisissez la longueur, les majuscules, minuscules, chiffres et symboles. Gratuit, sans inscription.
Convertissez un texte en MAJUSCULES, minuscules, casse de phrase, Casse De Titre, camelCase, PascalCase, snake_case, CONSTANT_CASE, dot.case ou param-case.
Extrayez toutes les adresses e-mail d’un texte, d’un HTML, de journaux ou de documents en un clic et obtenez une liste propre avec le total. Gratuit.
Consultez les enregistrements DNS d’un domaine : A, AAAA, CNAME, MX, NS, TXT et SOA. Vérifiez l’e-mail, le SPF, les validations et les serveurs de noms.
Changez le séparateur d’un texte : retours à la ligne, espaces, points-virgules, tirets, barres ou points. Passez d’une colonne à une ligne et inversement.
Créez un lien WhatsApp pour discuter en un clic, avec votre numéro et un message prérempli. Pour votre site, bio, annonces ou QR code. Gratuit.