À propos du projet
jsonwebtoken est une implémentation Node.js largement utilisée des JSON Web Tokens (RFC 7519) développée par Auth0. Elle permet une authentification et une autorisation sécurisées basées sur des jetons dans les applications Node.js.
Capacités clés :
- **Signature de jetons (jwt.sign)** : Créer des JWT avec des revendications de charge utile (exp, nbf, aud, iss, sub, jti, iat) en utilisant des algorithmes symétriques (HMAC) ou asymétriques (RSA, ECDSA, RSA-PSS). Prend en charge le fonctionnement synchrone et asynchrone. Les options incluent la sélection de l'algorithme (HS256 par défaut), les délais d'expiration (expiresIn, notBefore), les en-têtes personnalisés, les identifiants de clé et les autorisations de tailles de clé non sécurisées pour les clés RSA héritées.
- **Vérification de jetons (jwt.verify)** : Valider les signatures et les revendications des jetons. Accepte les secrets, les clés publiques PEM ou une fonction de rappel de récupération de clé (utile avec les points de terminaison JWKS). Valide les algorithmes, l'audience, l'émetteur, l'ID de jeton, le sujet, l'expiration (avec clockTolerance), le not-before et l'âge maximal du jeton. Renvoie la charge utile décodée ou l'objet jeton complet (en-tête, charge utile, signature) lorsque l'option complete est définie.
- **Décodage de jetons (jwt.decode)** : Inspecter la charge utile et l'en-tête du jeton sans vérification de signature (pas pour les entrées non fiables).
- **Algorithmes pris en charge** : HS256, HS384, HS512 (HMAC) ; RS256, RS384, RS512 (RSASSA-PKCS1-v1_5) ; PS256, PS384, PS512 (RSASSA-PSS, Node ≥6.12.0/≥8.0.0) ; ES256, ES384, ES512 (ECDSA) ; et « none » (non sécurisé).
- **Gestion des erreurs** : Types d'erreurs distincts (TokenExpiredError, JsonWebTokenError, NotBeforeError) avec des propriétés détaillées pour une gestion programmatique.
- **Notes de sécurité** : Module RSA minimum de 2048 bits appliqué par défaut ; secrets encodés en base64 pris en charge via Buffer.from ; les charges utiles provenant de sources non fiables doivent être assainies.
La bibliothèque est sous licence MIT, maintenue par Auth0, et s'intègre aux solutions de gestion de clés comme node-jwks-rsa pour la rotation des clés. Des guides de migration existent pour les mises à niveau de versions majeures.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.