En quoi consiste cet outil ?
Un JWT (JSON Web Token) est une chaîne de caractères compacte et compatible avec les URL, utilisée pour transmettre des informations d'identification entre deux parties — le plus souvent sous la forme d'un jeton d'authentification après la connexion. Il se compose de trois parties séparées par des points : un en-tête (algorithme et type de jeton), une charge utile (les informations proprement dites : identifiant de l'utilisateur, rôles, date d'expiration, etc.) et une signature (utilisée par le serveur pour vérifier que le jeton n'a pas été altéré).
L'en-tête et la charge utile sont simplement du JSON encodé en Base64URL — et non chiffré — ; n'importe qui peut donc les décoder et les lire sans clé secrète. Seule la signature nécessite une clé secrète pour être vérifiée. C'est exactement ce que fait cet outil : il décode les parties lisibles et les affiche sous forme de JSON formaté, sans tenter de vérifier la signature.
Pourquoi l'utiliser ?
- En-tête et données immédiatement lisibles, au format JSON : plus besoin de découper manuellement la chaîne de caractères ni de la décoder en Base64 à la main.
- Vérification automatique de la date d'expiration : si la charge utile comporte une revendication « exp », celle-ci est convertie en une date lisible et marquée comme expirée ou valide.
- Copie en un clic de l'en-tête ou du corps du message, séparément.
- 100 % côté client : le jeton est décodé localement et n'est jamais transmis, ce qui garantit une utilisation en toute sécurité, même avec des jetons provenant d'un système de production.
- Aucune vérification de signature n'a été effectuée ni déclarée — il s'agit d'un outil de débogage/d'inspection, et non d'un validateur.
Mode d'emploi
- Collez votre JWT dans le champ prévu à cet effet (la chaîne complète, y compris les trois parties séparées par des points).
- L'en-tête et la charge utile sont décodés automatiquement au fur et à mesure que vous tapez.
- Vérifiez la ligne « exp » si le jeton comporte un claim « exp » : elle indique la date exacte et précise si le jeton a expiré.
- Cliquez sur « Copier » sous l'une ou l'autre des zones pour copier cette section au format JSON.
Exemple
Entrée
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQRésultat
Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}La signature (troisième partie) n'est jamais décodée ni vérifiée : il s'agit d'un hachage opaque utilisé côté serveur pour vérifier l'authenticité.
Conseils pratiques
- Dépannage des erreurs « jeton non valide » : décodez d'abord la charge utile pour vérifier la revendication « exp » — un jeton périmé en est la cause la plus courante, et cela n'apparaît pas toujours clairement à la seule lecture du message d'erreur.
- Vérifier le contenu réel du jeton d'une API tierce : de nombreuses API renvoient un JWT d'apparence opaque en tant que jeton d'accès — décodez-le ici pour voir les champs d'application, l'identifiant utilisateur ou la date d'expiration que votre intégration reçoit réellement.
- Ne partez jamais du principe qu'un JWT est chiffré : si vous constatez la présence de données sensibles (adresse e-mail, identifiants internes) dans une charge utile décodée pendant le développement, c'est le signe qu'il faut transférer ces données côté serveur plutôt que de compter sur le client pour ne pas les lire.
Exemples courants de requêtes que vous trouverez dans une charge utile
| Allégation | Signification |
|---|---|
| sub | Sujet — il s'agit généralement de l'identifiant utilisateur que le jeton représente |
| exp | Date d'expiration (horodatage Unix) — le jeton n'est plus valide après cette date |
| iat | Émis à — au moment de la création du jeton |
| iss | Émetteur — quel service/serveur a émis le jeton |
| aud | Public cible — à quel service le jeton est-il destiné ? |
| rôle / rôles / champ d'application | Réclamations personnalisées — autorisations ou rôles accordés à l'utilisateur (ne font pas partie de la norme JWT, mais sont extrêmement courantes) |
Foire aux questions
Cet outil vérifie-t-il la signature du JWT ?
Non. La vérification d'une signature nécessite la clé secrète ou la clé publique utilisée pour signer le jeton, dont seul le serveur émetteur dispose. Cet outil se contente de décoder l'en-tête et la charge utile — les parties lisibles par l'utilisateur — afin que vous puissiez examiner les revendications et la date d'expiration sans avoir besoin d'aucune clé.
Est-ce sans risque de coller ici un JWT de production réel ?
Le décodage s'effectue entièrement dans votre navigateur via JavaScript : le jeton n'est jamais envoyé à aucun serveur, pas même au nôtre. Cela dit, considérez les jetons comme des mots de passe : ne les collez pas dans des outils auxquels vous ne faites pas confiance et évitez de partager des captures d'écran de jetons décodés contenant des informations sensibles.
Pourquoi n'importe qui peut-il lire le contenu de mon JWT sans mot de passe ?
De par leur conception, l'en-tête et la charge utile d'un JWT sont encodés en Base64URL, et non chiffrés. L'encodage n'est pas une mesure de sécurité ; il permet simplement de rendre le JSON compatible avec les URL pour la transmission. N'insérez jamais d'informations confidentielles (mots de passe, numéros de carte bancaire) directement dans la charge utile d'un JWT : partez du principe que toute personne en possession du jeton peut en lire le contenu.
Que signifie la mention « exp » et pourquoi est-ce important ?
« exp » correspond à la date d'expiration du jeton, exprimée sous forme d'horodatage Unix (nombre de secondes écoulées depuis 1970). Les serveurs rejettent un JWT une fois ce délai écoulé, ce qui oblige le client à se réauthentifier. Cet outil convertit ce timestamp en une date lisible et indique s'il a déjà expiré, ce qui est utile pour déboguer les problèmes du type « pourquoi ma session s'est-elle déconnectée ? ».
Mon jeton renvoie une erreur d'analyse JSON — pourquoi ?
Soit la chaîne n'est pas un JWT valide (elle doit comporter exactement trois parties séparées par des points), soit elle a été tronquée ou modifiée — cela est souvent dû à un jeton accidentellement réparti sur plusieurs lignes ou à des caractères manquants à la fin lors de la copie.