18.8. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment révoquer un JWT

Página 117

Les JSON Web Tokens (JWT) sont un moyen efficace d'assurer la sécurité des données transmises entre le client et le serveur dans une application NodeJS. JWT est une norme (RFC-7519) qui définit un moyen compact et autonome de transmettre en toute sécurité des informations entre les parties sous la forme d'un objet JSON. Ces informations peuvent être vérifiées et fiables car elles sont signées numériquement.

La révocation d'un JWT est un aspect crucial à prendre en compte lorsque vous travaillez avec des JWT dans NodeJS. La révocation est le processus consistant à rendre un jeton JWT inutile ou invalide. Cela est nécessaire dans de nombreuses situations, par exemple lorsqu'un utilisateur se déconnecte, lorsqu'un jeton est volé ou lorsqu'un jeton est utilisé à mauvais escient.

Pour révoquer un JWT, vous pouvez utiliser plusieurs approches. Une méthode courante consiste à créer une liste noire de jetons. Cette liste noire peut être stockée dans une base de données ou dans un cache tel que Redis. Lorsqu'un utilisateur se déconnecte ou lorsqu'un jeton s'avère non sécurisé, vous pouvez ajouter le jeton à cette liste noire. Ensuite lors de chaque requête vous pouvez vérifier si le token est sur liste noire. Si tel est le cas, vous pouvez rejeter la demande.

Une autre approche consiste à utiliser un jeton d'actualisation avec le jeton d'accès. Dans ce cas, le jeton d’accès a une durée de vie très courte, disons 15 minutes. Le jeton d'actualisation a une durée de vie plus longue, disons 24 heures. Lorsque le jeton d'accès expire, le client demande un nouveau jeton d'accès à l'aide du jeton d'actualisation. Si le jeton d'actualisation est révoqué, le client ne pourra pas obtenir un nouveau jeton d'accès.

Pour implémenter la révocation JWT dans NodeJS, vous pouvez utiliser le package 'jsonwebtoken'. Tout d'abord, vous devez installer le package à l'aide de la commande npm :

npm installer jsonwebtoken

Une fois le package installé, vous pouvez l'utiliser pour créer et vérifier des jetons JWT. Voici un exemple de création d'un jeton JWT :

const jwt = require('jsonwebtoken'); charge utile const = { ID utilisateur : '123', } ; const secret = 'ma_clé_secret'; const token = jwt.sign(payload, secret, { expiresIn: '1h' });

Dans l'exemple ci-dessus, nous importons d'abord le package 'jsonwebtoken'. Ensuite, nous créons une charge utile contenant les informations que nous souhaitons inclure dans le jeton. Ensuite, nous utilisons la fonction « sign » pour créer le jeton. La fonction « sign » prend trois arguments : la charge utile, la clé secrète et les options. Les options peuvent inclure la durée du jeton, qui est définie sur une heure dans cet exemple.

Pour vérifier et révoquer un jeton, vous pouvez procéder comme ceci :

const jwt = require('jsonwebtoken'); const token = 'the_token_to_verify'; const secret = 'ma_clé_secret'; essayer { const décodé = jwt.verify(jeton, secret); // vérifie si le token est dans la liste noire si (isTokenInBlacklist (jeton)) { throw new Error('Le jeton est révoqué'); } console.log (décodé); } attraper (erreur) { console.erreur(erreur.message); }

Dans l'exemple ci-dessus, nous importons d'abord le package 'jsonwebtoken'. Ensuite, nous définissons le token que nous voulons vérifier et la clé secrète. Nous utilisons la fonction « vérifier » pour vérifier le jeton. Si le jeton est valide, la fonction « vérifier » renvoie la charge utile décodée. Si le jeton n'est pas valide, la fonction « vérifier » renvoie une erreur. Ensuite, nous vérifions si le token est sur liste noire. Si tel est le cas, nous renvoyons une erreur.

Travailler avec des JWT dans NodeJS est une partie importante du développement d'applications sécurisées. La révocation des JWT est un aspect crucial à considérer car elle permet de garder le contrôle sur les tokens en circulation. En implémentant la révocation JWT, vous pouvez garantir que les jetons dangereux ou indésirables sont invalidés, améliorant ainsi la sécurité de votre application.

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

Qu'est-ce que la révocation du JSON Web Token (JWT) dans une application NodeJS et comment la mettre en œuvre ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11818.9. Travailler avec les jetons Web JSON (JWT) dans NodeJS : comment gérer les jetons d'actualisation dans 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