Comprendre les tokens JWT
Un JSON Web Token (JWT) est un standard ouvert (RFC 7519) pour transmettre de manière sécurisée des informations entre deux parties sous forme d'objet JSON. Un JWT est composé de trois parties séparées par des points : le header (en-tête) qui indique l'algorithme de signature utilisé, le payload (charge utile) qui contient les claims (informations sur l'utilisateur et les métadonnées), et la signature qui garantit l'intégrité du token. Les JWT sont encodés en Base64URL, ce qui signifie qu'ils sont lisibles (mais pas modifiables sans invalider la signature).
Les claims standard d'un JWT
Le payload d'un JWT contient des claims, qui sont des paires clé-valeur. Les claims standard incluent : iss (issuer, émetteur du token), sub (subject, identifiant de l'utilisateur), aud (audience, destinataire prévu), exp (expiration time, date d'expiration), nbf (not before, date avant laquelle le token n'est pas valide), iat (issued at, date d'émission), et jti (JWT ID, identifiant unique). En plus de ces claims standard, vous pouvez ajouter des claims personnalisés comme le rôle de l'utilisateur, ses permissions, ou toute autre information nécessaire à votre application.
Sécurité et bonnes pratiques JWT
Les JWT sont signés, pas chiffrés : leur contenu est lisible par quiconque les possède. Ne stockez jamais de données sensibles (mots de passe, numéros de carte) dans le payload. Utilisez des durées d'expiration courtes (15 minutes à 1 heure) et implémentez un mécanisme de rafraîchissement. Stockez les JWT dans des cookies HttpOnly pour les protéger du XSS, ou dans le localStorage si vous avez besoin d'y accéder côté client. Validez toujours la signature côté serveur avant de faire confiance aux claims du token. Notre décodeur vous aide à inspecter vos tokens durant le développement.