Décodeur JWT : Décoder et vérifier les tokens sans compromettre la sécurité
Parlons des tokens JWT.
Si vous avez travaillé avec une application web moderne ces 5 dernières années, vous les avez manipulés. Flux d'authentification, clés API, tokens de session, ils sont partout.
Mais voilà : beaucoup de développeurs utilisent les JWT sans vraiment comprendre ce qu'ils contiennent. Et pire, certains collent des tokens de production dans des "débuggeurs JWT" aléatoires qui pourraient bien les enregistrer.
Dans ce guide, je vais vous montrer ce que fait réellement un décodeur JWT, comment l'utiliser en toute sécurité, et l'outil gratuit que j'utilise personnellement, qui fonctionne à 100 % dans le navigateur.
Ce qu'il y a réellement dans un JWT#
Un JSON Web Token se compose de trois parties, séparées par des points :
header.payload.signature
Par exemple :
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE2MjYxMjM0NTZ9.abc123def456...
Ce n'est pas chiffré. C'est simplement encodé en base64.
Le JWT header indique l'algorithme qui a signé le token (généralement HS256 ou RS256).
Le JWT payload contient les revendications réelles (identifiant utilisateur, date d'expiration, portées, etc.).
La JWT signature est la preuve cryptographique que le token n'a pas été modifié.
Toute personne possédant le token peut lire l'en-tête et le payload. C'est la signature qui est protégée.
Pourquoi ne jamais coller vos tokens sur des sites douteux#
Ceci est un message de sécurité important.
Si vous collez un JWT dans un outil qui l'envoie à un serveur (au lieu de le décoder localement), vous venez de divulguer votre token. L'opérateur du site peut :
- Voler votre session
- Usurper l'identité de l'utilisateur
- Utiliser le token dans ses propres scripts
Et de nombreux sites "décodeur JWT" font exactement cela. Ils envoient les données à un backend, "décodent", et renvoient le résultat. Leur serveur a désormais votre token dans un fichier journal.
La solution : utilisez uniquement des décodeurs JWT qui s'exécutent dans le navigateur. Le token ne quitte jamais votre machine.
Le décodeur JWT gratuit que j'utilise#
J'ai créé Molixa JWT Decoder parce que tous les autres décodeurs "gratuits" soit affichaient des publicités, soit envoyaient le jeton vers un serveur.
Le mien ne le fait pas.
Vous collez un JWT. Le décodeur utilise JavaScript dans votre navigateur pour diviser, décoder en base64 et analyser le JSON. C'est tout.
Aucun analytics ne se déclenche sur le jeton. Aucun aller-retour vers un serveur. Aucune journalisation.
Étapes pour décoder votre premier JWT#
Voici comment cela fonctionne.
Étape 1 : Récupérez un JWT#
Depuis le stockage local de votre application, les DevTools du navigateur ou une réponse API.
Dans Chrome DevTools, ouvrez Application → Stockage → Stockage local → cherchez des clés comme "access_token" ou "jwt."
Étape 2 : Ouvrez le décodeur#
Étape 3 : Collez#
Une grande zone de texte en haut. Collez le jeton complet.
Étape 4 : Lisez la répartition#
Vous verrez trois panneaux :
- En-tête, algorithme, type, ID de clé
- Payload, les revendications réelles
- Signature, base64 (vous ne pouvez pas la décoder, seulement vérifier)
Étape 5 : Vérifiez les revendications#
Le payload est là où se passe l'action. Recherchez :
sub, sujet (généralement l'ID utilisateur)iat, émis à (horodatage)exp, expire à (horodatage ; convertissez en date)iss, émetteur (quel service a créé le jeton)aud, audience (quel service peut utiliser le jeton)scope, autorisations accordées
Un inspecteur JWT digne de ce nom convertit automatiquement les horodatages en dates lisibles.
Comment vérifier une signature JWT#
Décoder affiche le contenu. Vérifier prouve que le jeton est authentique.
Pour HS256 (symétrique)#
Vous avez besoin du secret partagé. Collez-le dans le panneau de vérification. Le décodeur hache l'en-tête + la charge utile avec HMAC-SHA256, compare avec la signature et indique "valide" ou "invalide".
Ne stockez le secret nulle part de manière persistante. C'est un secret pour une raison.
Pour RS256 (asymétrique)#
Vous avez besoin de la clé publique (format PEM). Collez-la. Le décodeur vérifie la signature à l'aide de la clé publique.
Les clés publiques peuvent être partagées en toute sécurité, c'est le principe.
Erreurs JWT courantes#
Quelques-unes que je vois tout le temps :
Erreur 1 : Stocker les JWT dans localStorage. Vulnérable aux XSS. Utilisez des cookies httpOnly pour les jetons de session.
Erreur 2 : Faire confiance au contenu décodé. Le payload est simplement en base64. N'importe qui peut le modifier. Vérifiez toujours la signature côté serveur.
Erreur 3 : Durées d'expiration longues. Les jetons avec exp à plus de 30 jours sont risqués. Utilisez des jetons de rafraîchissement pour les sessions longues et des jetons d'accès de courte durée.
Erreur 4 : Mettre des données sensibles dans le payload. Le payload est lisible par quiconque possède le jeton. N'y mettez pas de numéros de carte bancaire, noms complets ou toute information que vous ne voudriez pas voir journalisée.
Erreur 5 : Coller des jetons de production dans des outils qui envoient à un serveur. Voir ci-dessus. Utilisez des décodeurs uniquement côté navigateur.
Exemple concret : déboguer une erreur 401#
La semaine dernière, mon API renvoyait sans cesse une 401 pour un utilisateur. Il jurait que son jeton était valide.
Je lui ai demandé de coller le jeton dans Molixa JWT Decoder.
Son payload affichait exp: 1715342400. J'ai converti : c'était il y a 3 heures.
Son jeton avait expiré. Le flux de rafraîchissement avait échoué silencieusement.
Temps de débogage total : 90 secondes.
Qu'en est-il de jwt.io ?#
Le décodeur JWT en ligne le plus célèbre.
Avantages : Standard de l'industrie. Approuvé par beaucoup. Inconvénients : Contient des publicités. Interface non mise à jour depuis des années. Envoie des analyses sur l'utilisation des tokens (pas le token lui-même, mais assez pour connaître les tendances).
Molixa JWT Decoder est une alternative propre et rapide pour un usage quotidien.
Pour l'expérience officielle jwt.io, rendez-vous sur jwt.io. Pour un décodage quotidien sans publicité, le mien fonctionne.
Conseils d'expert#
Quelques bonnes habitudes à adopter :
Astuce 1 : Utilisez le convertisseur de timestamp. Les JWT utilisent les timestamps Unix ; convertissez-les en dates lisibles.
Astuce 2 : Mettez le décodeur en favori. Vous l'utiliserez plus que vous ne le pensez.
Astuce 3 : Vérifiez toujours iss et aud. S'ils ne correspondent pas à ce que votre service attend, le token n'est pas pour vous, rejetez-le.
Astuce 4 : Gardez les secrets de production hors des panneaux de vérification. Utilisez un outil CLI local (comme le jose-cli officiel) pour les flux de vérification en production.
Astuce 5 : Pour déboguer les tokens d'applications mobiles, copiez-les via Charles Proxy ou Proxyman, puis décodez-les dans le navigateur.
Alternatives modernes au JWT#
Quelques notes pour le contexte :
PASETO, conçu pour corriger les défauts de conception du JWT. Meilleurs paramètres par défaut, pas d'attaques par confusion d'algorithme.
Branca, jetons signés et compacts. Moins courant, mais plus simple.
Jetons opaques, chaînes aléatoires qui correspondent à des sessions côté serveur. Certaines équipes y reviennent pour des raisons de sécurité.
Le JWT reste cependant dominant. Savoir le décoder et le vérifier est un prérequis.
Conclusion#
Les tokens JWT ne font pas peur une fois que vous comprenez leur structure.
En-tête. Payload. Signature.
Un bon décodeur JWT gratuit vous montre les trois, convertit les horodatages et n'envoie jamais le token à un serveur.
Molixa JWT Decoder coche toutes les cases.
Ajoutez-le à vos favoris. Utilisez-le. Arrêtez de coller des tokens sur des sites aléatoires.
Restez en sécurité.



