Authentification JWT
JWT (JSON Web Token) est un standard ouvert (RFC 7519) permettant de transmettre des informations de manière sécurisée entre différentes parties. Il s'agit d'une méthode compacte et sûre pour les URL de représenter des revendications au format d'objet JSON, couramment utilisée pour l'authentification et l'échange d'informations.
Un JWT se compose de trois parties :
- En-tête - Spécifie le type de jeton et l'algorithme de signature utilisé
- Charge utile - Contient les revendications, telles que l'ID utilisateur, les rôles, la date d'expiration, etc.
- Signature - Utilisée pour vérifier que le message n'a pas été altéré pendant la transmission
Utilisation typique du JWT dans le flux d'authentification :
- Après la connexion de l'utilisateur, le serveur génère un jeton JWT
- Le jeton est renvoyé au client et stocké (généralement dans localStorage ou les cookies)
- Dans les requêtes suivantes, le client inclut ce jeton dans l'en-tête Authorization
- Le serveur valide l'authenticité du jeton et accorde l'accès
Fournit un middleware pour l'authentification JWT Auth.
Choisir un fournisseur cryptographique
Salvo 0.95 propose deux features JWT alternatives :
jwt-authutilise le fournisseur AWS-LC.jwt-auth-ringutilise le fournisseur RustCrypto.
Dans une compilation normale, n'en activez qu'une seule. La feature ring
distincte sélectionne ring pour l'intégration rustls de Salvo et n'active pas
l'authentification JWT. L'exemple ci-dessous utilise jwt-auth. Pour utiliser
RustCrypto à la place :
Si l'unification des features Cargo active les deux fournisseurs JWT, appelez
salvo::jwt_auth::install_crypto_provider() au tout début de main, avant
toute opération directe avec jsonwebtoken ou configuration du middleware
JWT. L'exemple ci-dessous le fait afin de garantir une sélection déterministe.
Exemple de Code