Comment utiliser le décodeur JWT
- Collez un token JWT (il commence par
eyJ) dans la zone de saisie. - Cliquez sur Décoder pour lire l'en-tête, le payload et la signature.
- La date d'expiration (claim
exp) est affichée dans un format lisible si elle est présente.
Qu'est-ce qu'un JWT ?
Un JSON Web Token (JWT) est un format de token compact et sûr pour les URLs défini dans la RFC 7519. Il se compose de trois parties encodées en Base64url séparées par des points :
- En-tête: déclare l'algorithme de signature (
alg) et le type de token (typ: "JWT") - Payload: contient les claims : claims standards (
iss,sub,aud,exp,iat) et les claims personnalisés - Signature: résultat de la signature de
base64url(header).base64url(payload)avec l'algorithme déclaré
Claims JWT courants
| Claim | Nom complet | Signification |
|---|---|---|
iss | Issuer | Émetteur du token (ex. URL du serveur d'auth) |
sub | Subject | Sujet du token (généralement l'ID utilisateur) |
aud | Audience | Destinataire prévu (ex. URL de votre API) |
exp | Expiration | Horodatage Unix après lequel le token est invalide |
iat | Issued at | Horodatage Unix de création du token |
jti | JWT ID | Identifiant unique pour éviter la réutilisation du token |
JWT vs cookies de session
Les sessions traditionnelles stockent l'état côté serveur ; un cookie d'ID de session est envoyé à chaque requête. Les JWT stockent l'état dans le token lui-même, les rendant sans état: le serveur n'a pas besoin de consulter la base de données. Cela les rend attractifs pour les microservices et les systèmes distribués, mais un token valide reste valide jusqu'à expiration même après déconnexion.
Note de sécurité
Cet outil décode le token localement dans votre navigateur, il ne valide pas la signature. Les claims décodés ne sont pas fiables sans vérification côté serveur. Ne collez jamais des tokens donnant accès à des systèmes de production dans un outil en ligne.
RGPD et recommandations ANSSI
Les tokens JWT qui contiennent des données permettant d'identifier un utilisateur (ID, email, rôles) sont des données personnelles au sens du RGPD. Deux points de vigilance pour les développeurs :
- Durée de vie : La CNIL applique le principe de minimisation des données. Utilisez la durée de validité minimale nécessaire. Les access tokens de courte durée (15-60 min) combinés à des refresh tokens sont le modèle recommandé.
- Données dans le payload : Le payload JWT est encodé en Base64, pas chiffré. Tout proxy, CDN ou log applicatif peut le lire. Ne stockez jamais de données sensibles (numéro de SS, IBAN, mot de passe) dans un payload JWT.
L'ANSSI (guide des mécanismes cryptographiques, révision 2023) recommande RS256 (RSA-PKCS1 + SHA-256) ou ES256 (ECDSA P-256) pour la signature des JWTs en production. Rejetez explicitement côté serveur les tokens avec "alg": "none", accepter des tokens non signés est une vulnérabilité critique connue.