JWT (JSON Web Token) est une norme moderne d'autorisation et d'échange de données sécurisé utilisée dans de nombreuses architectures API et microservices. Nous mettons en œuvre le support complet de JWT pour l'authentification des utilisateurs et des services, la gestion des sessions et la délimitation des accès par rôle.
Les jetons JWT sont stockés sur le côté client, ne nécessitent pas de sessions sur le serveur, et sont signés pour garantir l'authenticité et la protection contre la contrefaçon.
Ce que contient JWT
| Champ dans le token | Affectation |
|---|---|
| sub | ID d'utilisateur ou de service |
| exp | Heure de fin du token |
| roles / scopes | Rôles de l'utilisateur et autorisations disponibles |
| signature | Signature numérique pour l'authentification |
| custom claims | Données supplémentaires : langue, ID de salle, monnaie, etc. |
Caractéristiques de la mise en œuvre
Format: 'header. payload. signature` (в base64)
Algorithmes de signature: HS256 (symétrique) et RS256 (asymétrique)
Prise en charge des tokens refresh et de la rotation
Travailler avec les clients CORS, mobile, web et server-to-server
Possibilité de stocker un token dans des cookies, localStorage ou en-têtes
Avantages de l'utilisation de JWT
Stateless: Pas besoin de session serveur
Pratique pour mobile, SPA et microservices
Évolutivité - facile à mettre en œuvre sur de nombreux services
Échange rapide de données entre le client et l'API
Flexibilité - vous pouvez stocker dans le token toutes les données nécessaires à l'autorisation
Où est particulièrement pertinent
Applications mobiles et frontales
Autorisation intraservices (S2S)
Plates-formes avec un grand nombre d'utilisateurs simultanés
Systèmes nécessitant un modèle d'accès à un rôle clair
JWT est un outil fiable et flexible pour l'autorisation et la sécurité de l'API. Il permet des applications évolutives et sécurisées sans dépendre de l'état du serveur.