Qu'est-ce qu'un JWT ?
Un JWT (JSON Web Token) est une chaîne compacte, sûre pour les URL, utilisée pour représenter des revendications (claims) entre deux parties. Il se compose de trois sections encodées en Base64URL séparées par des points : un en-tête, une charge utile (payload) et une signature. La signature permet au destinataire de vérifier que le contenu n'a pas été altéré.
Les trois parties
En-tête — précise l'algorithme utilisé pour signer le jeton et le type de jeton.
Charge utile — contient les revendications : des faits sur l'utilisateur et la session, comme l'identifiant utilisateur, les rôles et la date d'expiration.
Signature — un hachage cryptographique de l'en-tête et de la charge utile qui prouve que le jeton n'a pas été modifié.
Revendications courantes
La charge utile comprend généralement : sub (le sujet — généralement un identifiant utilisateur), iat (date d'émission), exp (horodatage d'expiration), iss (émetteur) et aud (audience visée).
Décodage vs vérification
N'importe qui peut décoder un JWT — la charge utile est seulement encodée, pas chiffrée. Utilisez notre décodeur JWT pour inspecter l'en-tête et la charge utile de n'importe quel jeton pendant le développement. La vérification (contrôle de la signature) nécessite la clé secrète et se fait sur votre serveur.
Erreurs de sécurité courantes à éviter
- N'acceptez jamais les jetons avec
"alg": "none"— cela désactive entièrement la vérification de la signature - Stockez les jetons dans des cookies httpOnly, et non dans le localStorage du navigateur (vulnérable au cross-site scripting)
- Validez toujours la revendication
exp— les jetons expirés doivent être rejetés - Ne placez jamais de mots de passe ou de données personnelles sensibles dans la charge utile — elle peut être lue par quiconque possède le jeton
Questions fréquentes
- Comment inspecter un JWT sans écrire de code ?
- Collez le jeton dans notre décodeur JWT. Il divise le jeton en ses trois sections, décode chacune d'elles et affiche la charge utile complète, y compris toutes les revendications et la date d'expiration.
- La charge utile d'un JWT est-elle chiffrée ?
- Non — la charge utile est encodée en Base64URL, que n'importe qui peut décoder. Ne stockez jamais de mots de passe, numéros de carte de crédit ou autres données sensibles dans une charge utile JWT.
- Quelle est la différence entre un JWT et une clé d'API ?
- Une clé d'API est une chaîne opaque — le serveur doit la rechercher dans une base de données pour connaître les autorisations qu'elle accorde. Un JWT est autonome — le serveur peut le vérifier et lire les autorisations depuis la charge utile sans consulter de base de données.