Les JWT sont le format de jeton d’authentification le plus courant dans les applications web. Chaque fois que vous vous connectez, une API émet un JSON Web Token qui porte votre identité, vos permissions et souvent des informations personnelles. Quand quelque chose ne va pas — une session expirée, une requête rejetée, un coéquipier qui demande « qu’est-ce qu’il y a dans ce jeton ? » — le premier réflexe est de le décoder.
La plupart des décodeurs JWT en ligne fonctionnent. La question est de savoir si vous devriez leur faire confiance avec votre jeton.
Ce qu’il y a réellement dans un JWT
Un JWT est trois chaînes encodées en base64url séparées par des points :
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NSIsIm5hbWUiOiJBbGljZSIsImlhdCI6MTUxNjIzOTAyMn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Décodez les deux premières parties et vous obtenez du JSON :
// En-tête
{
"alg": "HS256",
"typ": "JWT"
}
// Contenu
{
"sub": "12345",
"name": "Alice",
"iat": 1516239022
}
La signature est un hash cryptographique prouvant que le jeton a été émis par quelqu’un ayant le secret. N’importe qui peut décoder le contenu — ce n’est pas la limite de sécurité. La limite est de savoir si vous pouvez vérifier la signature.
Décodage vs vérification
Cette distinction est importante :
- Décodage = décodage Base64 du JSON pour pouvoir le lire. Aucun secret requis. N’importe qui peut le faire.
- Vérification = vérification de la signature par rapport à un secret connu pour confirmer que le jeton n’a pas été altéré. Nécessite le secret.
La plupart des décodeurs en ligne ne font que décoder. Ils vous montrent l’en-tête et le contenu mais ne vous demandent jamais votre secret — car ils ne vérifient pas, ils affichent uniquement.
Pour du débogage (quelles revendications a ce jeton, quand expire-t-il), le décodage suffit. Pour l’authentification, vous avez besoin de la vérification — et elle doit se produire sur une infrastructure que vous contrôlez.
Revendications JWT standard à vérifier
Quand vous décodez un JWT, recherchez ces revendications enregistrées :
| Revendication | Signification | Quoi vérifier |
|---|---|---|
exp |
Date d’expiration (horodatage Unix) | Est-ce dans le futur ? |
nbf |
Pas avant (horodatage Unix) | Est-ce dans le passé ? |
iat |
Émis à (horodatage Unix) | Quel âge a le jeton ? |
iss |
Émetteur | Correspond-il à votre serveur d’authentification ? |
aud |
Public | Correspond-il à votre API ? |
sub |
Sujet (identifiant utilisateur) | Est-ce l’utilisateur attendu ? |
La raison la plus courante pour laquelle un jeton « valide » échoue : il est expiré. Vérifiez exp en premier.
Comment décoder un JWT dans votre navigateur
Vous n’avez pas besoin d’un outil tiers pour cela. Un JWT n’est que trois chaînes base64url. Mais si vous préférez ne pas mémoriser la commande de décodage, un décodeur dans le navigateur fait la même chose sans télécharger votre jeton :
- Collez le JWT dans le décodeur
- Voir l’en-tête, le contenu et la signature décodés
- Vérifiez la revendication
exppour voir si le jeton est expiré - Vérifiez que l’algorithme dans l’en-tête correspond à ce que vous attendez
Le décodeur JWT sur DevSpeedTools s’exécute entièrement dans votre navigateur. Aucune requête réseau, aucun envoi, aucun journal. Ouvrez les Outils de développement → Réseau, collez un jeton et confirmez que rien ne quitte votre machine.
Quand vous avez besoin de vérification (pas seulement de décodage)
Si vous déboguez un problème d’authentification et devez savoir si le jeton est valide — pas seulement ce qu’il contient — vous devez vérifier la signature. Cela doit se produire avec le même secret ou la même clé publique que votre serveur d’authentification.
Options qui n’impliquent pas de coller votre secret dans un site web :
- Node.js :
jsonwebtoken.verify(token, process.env.JWT_SECRET) - Python :
jwt.decode(token, key, algorithms=['HS256']) - Go :
token, err := jwt.Parse(tokenString, keyFunc) - CLI :
jwt-cli(Rust) oupyjwtavec une ligne de commande
Ne collez jamais un secret de production dans un outil en ligne. Le jeton n’est pas un secret. Le contenu l’est souvent.
En résumé
- Utilisez un décodeur dans le navigateur pour une inspection rapide. Pas d’envoi, pas de fuite.
- Utilisez une CLI ou votre propre code pour la vérification. Ne collez jamais un secret dans un site web.
- Vérifiez
expen premier — les jetons expirés sont la cause de la plupart des problèmes de « mon jeton a cessé de fonctionner ».