~$ man jwt
C'est quoi un JWT (JSON Web Token) ?
définition
Un JWT est un token compact encodé en base64 qui contient des données JSON appelées claims. Il est signé avec une clé secrète ou une paire de clés asymétriques pour empêcher toute modification.
Il se compose de trois parties : header, payload et signature. Le header indique l'algorithme, le payload porte les infos comme l'ID utilisateur et la date d'expiration, la signature garantit l'intégrité.
Les JWT sont stateless : le serveur n'a pas besoin de stocker de session en base de données. Ils transitent généralement dans l'en-tête Authorization des requêtes HTTP.
C'est comme un ticket de cinéma avec ton nom, la séance et un hologramme officiel. Tu le montres à l'entrée, le contrôleur vérifie l'hologramme une seule fois et te laisse passer sans appeler la billetterie à chaque film.
à retenir
- Un JWT contient des claims comme sub, exp et roles qui définissent l'identité et les droits.
- La signature empêche toute altération du token en vol.
- Les JWT sont stateless donc ils scalent bien sur plusieurs serveurs.
- Ils expirent après un délai défini pour limiter les risques en cas de vol.
- Transmets-les toujours via HTTPS et évite de les stocker dans le localStorage.
le marché en 2026
En 2026 la compétence JWT reste indispensable pour tout poste backend ou fullstack qui expose des API REST ou GraphQL. Les entreprises cherchent des profils capables de sécuriser l'authentification stateless et de gérer les refresh tokens.
questions fréquentes
Comment générer un JWT en Node.js ?
Utilise la librairie jsonwebtoken. Appelle jwt.sign avec le payload, la clé secrète et les options d'expiration. Le token retourné est prêt à être envoyé au client.
Quels sont les risques si je stocke un JWT dans le localStorage ?
Le localStorage est accessible via JavaScript donc un XSS peut le voler. Préférer un cookie HttpOnly avec flag Secure et SameSite.
JWT ou session classique en base de données ?
Le JWT évite de stocker l'état côté serveur et facilite le scaling horizontal. La session reste plus simple à invalider immédiatement en cas de besoin.
Comment rafraîchir un JWT expiré sans reconnecter l'utilisateur ?
Utilise un refresh token stocké de façon sécurisée. Quand le JWT expire, le client envoie le refresh token pour obtenir un nouveau JWT sans demander les identifiants.
les cours pour aller plus loin
