18. Travailler avec les jetons Web JSON (JWT) dans NodeJS

Página 109

JSON Web Tokens (JWT) est une norme ouverte (RFC 7519) qui définit une manière compacte et autonome de transmettre des informations entre les parties en tant qu'objet JSON. Ces informations peuvent être vérifiées et fiables car elles sont signées numériquement. Les JWT peuvent être signés à l'aide d'un secret (avec l'algorithme HMAC) ou d'une paire de clés publique/privée utilisant RSA ou ECDSA.

Lors de la création d'API dans NodeJS, JWT joue un rôle crucial dans l'authentification et l'autorisation. Il permet aux utilisateurs de s'authentifier et, une fois authentifiés, ils reçoivent un JWT. Ce jeton est ensuite utilisé pour autoriser l'utilisateur à accéder aux itinéraires, services et ressources autorisés avec ce jeton. Cela fait de JWT un outil indispensable pour créer des API sécurisées.

L'implémentation de JWT dans NodeJS est assez simple, grâce à des packages comme jsonwebtoken. Pour commencer, vous devez installer le package jsonwebtoken à l'aide de npm.

npm installer jsonwebtoken

Une fois installé, vous pouvez importer le package dans votre fichier et commencer à l'utiliser pour créer et vérifier des jetons.

const jwt = require('jsonwebtoken');

Pour créer un jeton, vous utilisez la méthode sign(). Cette méthode accepte trois arguments : la charge utile, le secret et les options. La charge utile est l'objet qui contient les revendications. Les revendications sont des déclarations sur une entité (généralement l'utilisateur) et des informations supplémentaires. Le secret est la clé secrète utilisée pour signer le token. Les options sont utilisées pour définir d'autres propriétés du jeton, telles que l'algorithme de signature et l'expiration du jeton.

laissez payload = {nom d'utilisateur : 'utilisateur'} ; let secret = 'une clé secrète'; let token = jwt.sign(payload, secret, {expiresIn: '1h'});

Pour vérifier un jeton, vous utilisez la méthode verify(). Cette méthode accepte trois arguments : le jeton, le secret et une fonction de rappel. La fonction de rappel est appelée avec le résultat de la vérification.

jwt.verify(jeton, secret, fonction(erreur, décodé) { si (erreur) { console.log('Échec de la vérification du jeton'); } autre { console.log('Jeton vérifié avec succès'); } });

Une chose importante à noter est que vous devez toujours protéger le secret utilisé pour signer le jeton. Si quelqu'un a accès à votre secret, il peut signer lui-même les jetons, ce qui peut entraîner de graves problèmes de sécurité.

De plus, vous devez toujours vérifier le jeton avant d'autoriser l'utilisateur à accéder aux itinéraires, services ou ressources protégés. Cela peut être fait à l'aide d'un middleware qui vérifie le jeton à chaque requête.

function AuthenticateToken (req, res, suivant) { const token = req.headers['autorisation']; if (token == null) renvoie res.sendStatus(401); jwt.verify(jeton, secret, (erreur, utilisateur) => { si (erreur) renvoie res.sendStatus(403); req.user = utilisateur ; suivant(); }); }

En résumé, JWT est un outil puissant d'authentification et d'autorisation dans les API NodeJS. Il vous permet de créer des jetons pouvant être utilisés pour authentifier les utilisateurs et les autoriser à accéder aux itinéraires, services et ressources. L'implémentation de JWT dans NodeJS est simple grâce à des packages comme jsonwebtoken.

Répondez maintenant à l’exercice sur le contenu :

Quel est le rôle principal des JSON Web Tokens (JWT) dans la création d'API dans NodeJS ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11018.1. Travailler avec les jetons Web JSON (JWT) dans NodeJS : que sont les jetons Web JSON (JWT)

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte