18.9. Travailler avec les jetons Web JSON (JWT) dans NodeJS : comment gérer les jetons d'actualisation dans NodeJS

Página 118

Les jetons Web JSON (JWT) constituent un moyen efficace de gérer l'authentification et l'autorisation dans les applications Node.js. Les JWT sont des jetons cryptés qui contiennent des informations sur l'utilisateur qui peuvent être vérifiées pour garantir que les demandes proviennent d'une source fiable. Dans ce chapitre, nous allons expliquer comment gérer les jetons d'actualisation dans NodeJS.

Les jetons d'actualisation jouent un rôle crucial dans le maintien de la sécurité des utilisateurs et dans la réduction de la nécessité pour l'utilisateur de se connecter à plusieurs reprises. Un jeton d'actualisation est un type spécial de jeton utilisé pour obtenir un nouveau jeton d'accès. Il a une durée de vie plus longue que le jeton d'accès, permettant aux utilisateurs de rester authentifiés sans avoir à ressaisir leurs informations d'identification.

Pour commencer à travailler avec JWT et actualiser les jetons, nous devons d'abord installer la bibliothèque jsonwebtoken. Dans le terminal, exécutez la commande suivante :

npm installer jsonwebtoken

Une fois la bibliothèque installée, vous pouvez créer des jetons à l'aide de la méthode sign(). Cette méthode accepte trois arguments : la charge utile, la clé secrète et les options. La charge utile contient les informations de l'utilisateur, la clé secrète est utilisée pour signer et vérifier le jeton, et les options peuvent inclure des éléments tels que l'algorithme de signature et la validité du jeton.

const jwt = require('jsonwebtoken'); const payload = { userId: user.id } ; const secret = 'votre-clé-secrète'; options const = { expiresIn : '1h' } ; const token = jwt.sign(charge utile, secret, options) ;

Maintenant que nous avons notre jeton, nous pouvons l'envoyer au client afin qu'il puisse l'utiliser dans ses requêtes ultérieures. Lorsque le client envoie une requête avec un jeton, nous pouvons utiliser la méthode verify() pour garantir que le jeton est valide.

jeton const = req.headers.authorization; essayer { const décodé = jwt.verify(token, 'votre-clé-secrète'); req.user = décodé ; } attraper (erreur) { res.status(401).send('Jeton invalide'); }

Alors, comment les jetons d'actualisation s'intègrent-ils dans tout cela ? Eh bien, lorsque le jeton d'accès expire, l'utilisateur devra se reconnecter pour en obtenir un nouveau. Pour éviter cela, nous pouvons émettre un jeton d'actualisation avec le jeton d'accès. Le jeton d'actualisation a une validité beaucoup plus longue et peut être utilisé pour obtenir un nouveau jeton d'accès sans que l'utilisateur se reconnecte.

Pour émettre un jeton d'actualisation, nous pouvons utiliser la même méthode sign(), mais avec un délai d'expiration plus long.

constfreshToken = jwt.sign(payload, 'your-refresh-token-secret', { expiresIn: '7d' });

Lorsque le jeton d'accès expire, le client peut envoyer une requête avec le jeton d'actualisation pour obtenir un nouveau jeton d'accès. Nous pouvons ensuite vérifier le jeton d’actualisation de la même manière que nous l’avons fait pour le jeton d’accès. Si le jeton d'actualisation est valide, nous émettons un nouveau jeton d'accès.

const rafraîchirToken = req.body.token; essayer { const décodé = jwt.verify(refreshToken, 'votre-refresh-token-secret'); const newAccessToken = jwt.sign({ userId : decoded.userId }, 'votre-clé-secret', { expiresIn : '1h' }); res.json({ accessToken : newAccessToken }); } attraper (erreur) { res.status(401).send('Jeton d'actualisation invalide'); }

Il est important de noter que les jetons d'actualisation peuvent également expirer. Lorsque cela se produit, l’utilisateur devra se reconnecter. De plus, vous devez traiter les jetons d'actualisation comme des mots de passe et les stocker en toute sécurité.

En résumé, les jetons d'actualisation sont un élément essentiel de la gestion de l'authentification et de l'autorisation dans les applications Node.js. Ils permettent aux utilisateurs de rester authentifiés pendant des périodes plus longues sans avoir à saisir leurs informations d'identification à plusieurs reprises. Dans le même temps, ils contribuent à maintenir la sécurité des applications en garantissant que seules les demandes provenant de sources fiables sont acceptées.

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

Qu'est-ce qu'un jeton d'actualisation et quel est son rôle dans un système d'authentification JWT dans une application Node.js ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11918.10. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment implémenter l'authentification basée sur JWT dans une API NodeJS

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