Qu'est-ce que Décodeur JWT ?
Un JWT (JSON Web Token) est la méthode standard utilisée par les API web modernes pour représenter les revendications d'authentification et d'autorisation. C'est un jeton compact et autonome composé de trois parties — un en-tête décrivant l'algorithme de signature, une charge utile portant les revendications réelles (comme l'ID utilisateur, les rôles et l'expiration), et une signature permettant au serveur destinataire de vérifier que le jeton n'a pas été altéré.
Ce décodeur lit instantanément l'en-tête et la charge utile afin que vous puissiez déboguer des problèmes d'authentification, inspecter les revendications réellement envoyées par une API, ou vérifier quand un jeton expire — le tout sans backend, sans outil en ligne de commande, ni collage de jetons sensibles sur un serveur tiers, puisque tout s'exécute localement dans votre navigateur.
Quand Utiliser Cette Calculatrice
- Déboguer pourquoi une API rejette un jeton en inspectant ses revendications et sa date d'expiration
- Vérifier la date d'expiration d'un jeton lors d'une investigation support ou d'une réponse à incident
- Vérifier qu'un fournisseur SSO ou OAuth émet bien les revendications attendues par votre application.
- Apprendre la structure des JWT pour un entretien d'embauche ou un cours de sécurité
- Inspecter un jeton capturé depuis les outils de développement du navigateur ou des journaux serveur pour en comprendre le contenu
- Comparer l'algorithme d'en-tête entre des jetons pour déboguer les échecs d'authentification par incompatibilité d'algorithme
Étapes:
- Collez votre JWT dans le champ de saisie, ou cliquez sur « Charger un exemple » pour en essayer un.
- L'en-tête et la charge utile sont décodés automatiquement au fur et à mesure de la saisie.
- Consultez des revendications comme iss, sub, exp et iat sous une forme claire et lisible.
- Les revendications d'horodatage (exp, iat, nbf) sont automatiquement converties en dates lisibles.
Formule
JWT = base64Url(en-tête) + "." + base64Url(charge utile) + "." + base64Url(signature)
Décodage : séparer sur ".", décoder en Base64URL les deux premières parties, analyser en JSON.
Vérification (non effectuée ici) : HMACSHA256(base64Url(en-tête) + "." + base64Url(charge utile), secret) === signature
Cas d'utilisation
- Déboguer pourquoi une API rejette un jeton en inspectant ses revendications
- Vérifier la date d'expiration d'un jeton lors d'une investigation support
- Vérifier qu'un fournisseur SSO ou OAuth émet bien les revendications attendues
- Apprendre la structure des JWT pour un entretien d'embauche ou un cours
- Inspecter rapidement un jeton copié depuis les outils de développement du navigateur ou des journaux serveur
Avantages Clés
- Décode instantanément n'importe quel JWT sans backend ni outil en ligne de commande
- Tout s'exécute côté client — les jetons ne sont jamais envoyés à un serveur
- Convertit automatiquement les revendications d'horodatage en dates lisibles
- Gratuit, sans inscription, fonctionne avec n'importe quel JWT quel que soit l'algorithme
Conseils de Pro
- Vérifiez toujours 'exp' en premier lors du débogage d'une erreur « unauthorized » — un jeton expiré en est la cause la plus fréquente
- Comparez le 'alg' de l'en-tête avec ce qu'attend votre backend pour repérer les bugs de désaccord d'algorithme
- Ne faites jamais confiance à une charge utile décodée comme preuve d'identité sans vérifier la signature côté serveur
- Utilisez des jetons de courte durée accompagnés de jetons de rafraîchissement plutôt que des JWT de longue durée pour limiter l'exposition en cas de fuite
Erreurs Courantes à Éviter
- Supposer qu'un JWT décodé est un JWT vérifié — le décodage ne fait que lire le contenu, il ne confirme pas l'authenticité
- Stocker des données sensibles (mots de passe, secrets) dans la charge utile, en oubliant qu'elle est lisible par n'importe qui
- Coller des jetons de production dans des décodeurs en ligne non fiables
- Confondre 'exp' (expiration) avec 'iat' (émis à) lors du débogage de problèmes de durée de vie d'un jeton
Termes Clés Expliqués
- Revendication (claim) : Une information affirmée à propos d'un sujet, comme un ID utilisateur ou un rôle
- En-tête (header) : Le premier segment du JWT, précisant l'algorithme de signature et le type de jeton
- Charge utile (payload) : Le deuxième segment du JWT, contenant les revendications réelles
- Signature : Le troisième segment du JWT, utilisé pour vérifier que le jeton n'a pas été altéré
Concepts connexes
- Générateur de hash:
- Générateur UUID:
- Encodeur/décodeur Base64:
- Formateur JSON:
- Vérificateur de force de mot de passe:
Exemple
Un jeton commençant par eyJhbGciOiJIUzI1NiJ9 se décode en un en-tête {"alg":"HS256","typ":"JWT"} — indiquant que le jeton est signé avec HMAC-SHA256.
Interprétation de vos résultats
Le décodeur divise le JWT au niveau des deux points séparateurs et décode les deux premiers segments en Base64URL. L'en-tête indique l'algorithme de signature (comme HS256 ou RS256) et le type de jeton. La charge utile contient les revendications réelles — identité de l'utilisateur, autorisations et horodatages.
Les revendications d'horodatage (exp, iat, nbf) sont automatiquement converties de l'époque Unix en dates lisibles. Si 'exp' affiche une date passée, le jeton a expiré et la plupart des serveurs le rejetteront. La revendication 'sub' (sujet) contient généralement l'ID utilisateur, et 'iss' (émetteur) identifie le serveur qui a créé le jeton.
Rappelez-vous que décoder n'est pas vérifier. La section de signature est affichée mais ne peut être vérifiée sans la clé secrète ou publique. Une charge utile décodée est purement informative — ne la considérez jamais comme une preuve d'identité sans vérification de signature côté serveur.

