Comment décoder des tokens JWT : guide du développeur
Apprenez à décoder des tokens JWT pour inspecter header, payload et claims. Avec décodeur gratuit dans le navigateur.
Qu'est-ce qu'un JWT et pourquoi le décoder ?
Un JSON Web Token (JWT) est un format de token compact et compatible URL, utilisé pour transmettre des claims entre deux parties, le plus souvent un client et un serveur. Un JWT est composé de trois parties encodées en Base64URL séparées par des points : le header, le payload et la signature.
Décoder un JWT consiste à lire le header et le payload pour comprendre quels claims il porte. C'est essentiel pour déboguer les flux d'authentification, inspecter les tokens dans les réponses d'API ou simplement comprendre quelles données sont envoyées en votre nom. À noter : décoder ne vérifie pas la signature — pour cela il faut la clé secrète ou publique de l'émetteur.
Cas d'usage courants
- Déboguer les flux d'auth : inspecter les tokens renvoyés par les API de login
- Auditer les claims : vérifier expiration, émetteur, audience et champs personnalisés
- Développement local : lire les tokens stockés dans localStorage ou les cookies
- Apprentissage : comprendre l'authentification dans les apps web modernes
- Revues de sécurité : repérer des données sensibles placées par erreur dans les tokens
Méthode 1 : Utilisez le décodeur JWT gratuit d'UtilBoxx (Recommandé)
Notre décodeur JWT analyse tout JWT et affiche son header et son payload dans un format lisible, avec les timestamps convertis en dates humaines. Voici comment l'utiliser :
- Allez sur utilboxx.com/fr/tools/crypto/jwt
- Collez votre JWT dans le champ d'entrée
- Le header et le payload sont décodés instantanément
- Vérifiez l'expiration, l'émission, et les autres claims
- Copiez n'importe quelle section en un clic
Pourquoi cette méthode fonctionne :
- Tourne entièrement dans votre navigateur — le token ne quitte jamais votre appareil
- Formate le JSON automatiquement pour la lisibilité
- Met en évidence les tokens expirés et bientôt expirés
- Adapté au mobile avec de grands champs de texte
- 100% gratuit, sans inscription, sans suivi
Méthode 2 : Utilisez jwt.io
Le site jwt.io (d'Auth0) est un playground JWT populaire. Collez un token et il décode header et payload, avec la possibilité de vérifier la signature si vous fournissez la clé secrète. Très utilisé, il prend en charge les algorithmes de nombreuses librairies.
Méthode 3 : Décodez dans votre langage préféré
En Node.js, avec la librairie `jsonwebtoken` :
```javascript const jwt = require('jsonwebtoken'); const decoded = jwt.decode('eyJhbGciOi...', { complete: true }); console.log(decoded.header); console.log(decoded.payload); ```
En Python, avec la librairie `PyJWT` :
```python import jwt payload = jwt.decode("eyJhbGciOi...", options={"verify_signature": False}) print(payload) ```
L'option `verify_signature: False` est cruciale — elle indique à la librairie de décoder sans vérifier la signature, exactement ce que vous voulez pour inspecter.
Questions fréquentes
Est-il sûr de décoder un JWT en ligne ?
Décoder est sûr car le contenu n'est pas secret : il est simplement encodé en Base64URL, pas chiffré. Cela dit, ne collez pas de tokens de production dans des services non fiables s'ils peuvent contenir des données sensibles. Le décodeur d'UtilBoxx tourne en local dans votre navigateur, donc le token ne quitte jamais votre appareil.
Peut-on se fier à un JWT décodé ?
Non. Le décodage affiche les claims mais ne vérifie pas la signature. Un token peut être décodé et ne pas être authentique pour autant. Vérifiez toujours la signature avec la clé secrète ou publique de l'émetteur avant de faire confiance à un claim.
Quelle est la différence entre décoder et vérifier ?
Décoder lit le contenu. Vérifier utilise une clé cryptographique pour confirmer que le token a été émis par une partie de confiance et n'a pas été altéré. Pour une inspection locale, décoder suffit. Pour une décision de sécurité, la vérification est indispensable.
Quels claims sont généralement inclus dans un JWT ?
Les claims standard incluent `iss` (émetteur), `sub` (sujet), `aud` (audience), `exp` (expiration), `iat` (émis à) et `nbf` (pas avant). Les claims personnalisés varient selon l'application, comme `role`, `email` ou `user_id`.
Conclusion
Décoder des JWT est une tâche courante pour les développeurs. Pour une expérience rapide, privée et dans le navigateur, le décodeur JWT d'UtilBoxx est l'outil le plus simple à garder dans vos favoris.