18.5. Travailler avec les jetons Web JSON (JWT) dans NodeJS : comment sécuriser les routes avec JWT dans NodeJS

Página 114

JSON Web Tokens, ou JWT, est une norme de jeton d'accès qui vise à sécuriser la communication entre deux parties (client et serveur, par exemple). JWT est un moyen efficace de gérer l'authentification et l'autorisation dans les applications NodeJS. Dans ce chapitre de notre cours, nous apprendrons comment sécuriser les routes avec JWT dans NodeJS.

Pour commencer, nous devons comprendre ce qu'est JWT. JWT est une chaîne codée transmise entre le client et le serveur pour valider l'identité de l'utilisateur et garantir la sécurité des informations transmises. Le jeton est composé de trois parties : l'en-tête, la charge utile et la signature.

L'en-tête contient des informations sur le type de jeton et l'algorithme de chiffrement utilisé. La charge utile contient les revendications ou les données que vous souhaitez transmettre. La signature est utilisée pour vérifier que l'expéditeur du JWT est bien celui qu'il prétend être et pour garantir que le contenu n'a pas été modifié.

Pour travailler avec JWT dans NodeJS, nous aurons besoin de la bibliothèque jsonwebtoken. Pour l'installer, vous pouvez utiliser la commande suivante dans le terminal :

npm installer jsonwebtoken

Une fois la bibliothèque installée, nous pouvons commencer à créer des jetons. Voici un exemple de la façon dont vous pouvez créer un jeton JWT dans NodeJS :

const jwt = require('jsonwebtoken'); date constante = { identifiant : 1, nom : « John Doe » } ; const secret = 'ma clé secrète'; const jeton = jwt.sign(données, secret); console.log(jeton);

Dans cet exemple, nous créons un jeton JWT qui contient les données de l'utilisateur. La clé secrète 'mysecretkey' est utilisée pour signer le token.

Maintenant que nous avons un jeton, nous pouvons l'utiliser pour protéger nos itinéraires. Pour ce faire, nous devons créer un middleware qui vérifiera la présence du jeton JWT à chaque requête. Voici un exemple de la façon dont vous pouvez procéder :

const jwt = require('jsonwebtoken'); const secret = 'ma clé secrète'; const authentifier = (req, res, suivant) => { jeton const = req.headers.authorization; si (!jeton) { return res.status(401).json({ message : 'Aucun jeton fourni' }); } jwt.verify(jeton, secret, (erreur, décodé) => { si (erreur) { return res.status(401).json({ message : 'Jeton invalide' }); } req.user = décodé ; suivant(); }); } ; app.use(authentifier);

Dans cet exemple, le middleware « authentifier » extrait le jeton de l'en-tête « autorisation » de la requête. Si le token n'est pas présent, la requête est rejetée avec un statut 401. Si le token est présent, il est vérifié à l'aide de la fonction 'jwt.verify'. Si la vérification échoue, la demande est rejetée avec un statut de 401. Si la vérification réussit, les données du jeton décodées sont ajoutées à la demande et la demande est transmise au middleware suivant.

Avec ce middleware, nous pouvons sécuriser n'importe quelle route en l'incluant simplement dans la chaîne middleware de la route. Voici un exemple :

app.get('/protected', authentifier, (req, res) => { res.json({ message : 'Ceci est une route protégée' }); });

Dans cet exemple, la route '/protected' ne sera accessible que si la requête inclut un jeton JWT valide dans l'en-tête 'authorization'.

En résumé, JWT est un moyen puissant et flexible de gérer l'authentification et l'autorisation dans les applications NodeJS. Avec la bibliothèque jsonwebtoken, nous pouvons facilement créer et vérifier des jetons JWT, et avec le concept middleware, nous pouvons facilement sécuriser nos routes. J'espère que ce chapitre vous a permis de bien comprendre comment utiliser JWT dans NodeJS.

Dans la section suivante, nous aborderons d'autres techniques d'authentification et d'autorisation dans NodeJS. Restez à l'écoute !

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

Qu'est-ce que JWT et comment est-il utilisé dans NodeJS pour l'authentification et l'autorisation ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11518.6. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment configurer l'expiration d'un 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