Décodeur JWT
Décodez et inspectez les JSON Web Tokens (en-tête, payload, expiration)
Comment ça marche
Décodeur JWT — Décodez et inspectez les JSON Web Tokens (en-tête, payload, expiration). Tout le traitement se fait dans votre navigateur — sans téléversement, sans inscription, sans e-mail. Gratuit pour toujours.
Dernière mise à jour:
À propos de Décodeur JWT
Un JSON Web Token ressemble à une chaîne opaque de points et de base64, mais à l'intérieur se trouvent un en-tête et un payload JSON parfaitement lisibles — plus une signature qui prouve que l'émetteur l'a frappé. Ce décodeur JWT sépare les trois segments, fait un base64url-decode, pretty-print le JSON, et convertit les claims temporels standards (iat, nbf, exp) dans ton fuseau horaire local pour que tu voies immédiatement si un token est expiré, quand il a été émis et à qui il était destiné.
Décoder un JWT, c'est exactement ce que les développeurs backend font des dizaines de fois par semaine : un 401 revient d'une API, tu copies le bearer token, tu veux voir les claims "sub", "aud", "scope" et "exp" sans lancer Node ni Python. Faire cela dans un outil en ligne random est risqué car les tokens transportent souvent des adresses email, des identifiants utilisateur internes, des claims de rôles et des identifiants de tenant — exactement les données que tu ne veux pas qu'un tiers journalise.
Tout dans ce décodeur se passe côté client dans ton navigateur. Le token ne quitte jamais ton appareil, n'est envoyé à aucun serveur, n'est pas stocké en localStorage et disparaît quand tu fermes l'onglet. La signature n'est volontairement pas vérifiée — cela exige le secret ou la clé publique de l'émetteur, que nous ne demandons jamais. Utilise ton backend ou une bibliothèque JWT quand tu as besoin de validation cryptographique.
Comment utiliser Décodeur JWT
- Colle le JWT (la longue chaîne "xxx.yyy.zzz") dans la zone de saisie.
- Lis l'en-tête décodé pour voir l'algorithme (alg) et le key id (kid) utilisés par l'émetteur.
- Inspecte le Payload pour les claims comme sub, aud, iss, scope, et tout champ custom injecté par ton service.
- Vérifie la section timestamps — "Expire", "Émis le" et "Pas avant" sont convertis dans ton fuseau local.
- Regarde le badge "Valide" / "Expiré" pour un coup d'œil rapide, puis copie les claims individuels selon le besoin.
- Rappelle-toi que la signature est affichée mais non vérifiée — pour la validation cryptographique, confie le token à ton backend.
Cas d'usage courants
- Debugger des réponses "401 Unauthorized" en vérifiant si le bearer token a réellement expiré.
- Inspecter un access token OAuth2 ou OIDC pour confirmer que scopes, audience et issuer correspondent aux attentes de l'API.
- Lire des claims custom (tenant id, rôle, feature flags) ajoutés par ton fournisseur d'authentification au login.
- Confirmer un problème de clock skew quand "nbf" (not before) déclenche quelques secondes dans le futur par rapport au serveur.
- Partager une vue rédigée d'un token avec un coéquipier sans le coller dans Slack ou un site public.
Astuces et erreurs courantes
- Si le décodage échoue, vérifie que tu as copié le token complet avec les deux points — beaucoup d'UIs tronquent au premier espace ou cachent la signature finale.
- Un payload décodé ne prouve rien sur l'authenticité. N'importe qui peut fabriquer un JWT d'apparence valide ; seule la vérification de signature avec la clé de l'émetteur dit qu'il est authentique.
- Traite les JWTs comme des mots de passe lors du partage de captures d'écran — même les tokens "expirés" peuvent fuiter des ids utilisateurs, des emails et des noms de scopes internes.
- Si "alg" est "none" dans l'en-tête, le token n'a aucune signature et ton service doit le rejeter. Ce décodeur affichera quand même le payload pour que tu confirmes le bug.
Questions fréquentes
Le token est-il envoyé à vos serveurs ?
Non. Le décodage se fait entièrement dans votre navigateur avec JavaScript — le token ne quitte jamais votre appareil.
Est-ce que cela vérifie la signature ?
Non. Cet outil ne décode que le header et le payload. La vérification de signature nécessite la clé secrète/publique, que nous ne demandons jamais — utilisez votre backend ou une bibliothèque JWT.
Pourquoi les dates s'affichent-elles dans mon fuseau local ?
Les claims JWT standards comme exp, iat et nbf sont des timestamps Unix (UTC). Nous les affichons dans le fuseau local de votre navigateur pour la lisibilité.
Cet outil enverra-t-il jamais mon token à un serveur ?
Non. Le décodage est du JavaScript pur qui s'exécute dans ton onglet. Pas de fetch, pas de télémétrie, pas de logging. Ouvre DevTools → Réseau et tu verras zéro requête quand tu colles un token.
Peut-il décoder aussi les JWE chiffrés ?
Non. Les JWE (JWTs chiffrés) ont besoin de la clé privée du destinataire pour être lisibles. Cet outil ne traite que les JWS (JWTs signés), ce que la grande majorité des flux OAuth2 et OIDC émet en pratique.
Pourquoi le payload affiche des timestamps numériques et une date humaine ?
Les claims standards (exp, iat, nbf) sont stockés en secondes Unix UTC. Nous affichons le nombre brut plus une date convertie en fuseau local pour que tu repères les problèmes d'expiration sans calcul.
Outils similaires
- Encodeur/Décodeur URLEncodez et décodez les composants URI et les URLs complètes
- Générateur d'UUIDGénérez des UUID v4 cryptographiquement aléatoires en lot
- Testeur RegexTestez des expressions régulières avec mise en évidence en direct
- Constructeur d'expressions CronConstruisez et expliquez des expressions cron en langage clair
- Formateur SQLEmbellissez, minifiez ou formatez des requêtes SQL pour tout dialecte
- Convertisseur YAML ↔ JSONConvertissez entre YAML et JSON dans les deux sens