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

Página 119

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

JSON Web Tokens (JWT) est une norme ouverte (RFC 7519) qui définit un moyen compact et sécurisé 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.

L'authentification basée sur JWT est un moyen populaire d'authentifier les applications Web. Avec l'authentification JWT, un jeton est stocké sur le client, qui est envoyé à chaque requête au serveur pour être authentifié.

Comment implémenter l'authentification basée sur JWT dans une API NodeJS

Pour implémenter l'authentification basée sur JWT dans une API NodeJS, vous aurez besoin des étapes suivantes :

  1. Installer le package jsonwebtoken
  2. Créez une route de connexion pour générer le jeton
  3. Vérifier le jeton à chaque demande

1. Installer le package jsonwebtoken

Tout d'abord, vous devrez installer le package jsonwebtoken dans votre projet NodeJS. Vous pouvez le faire en utilisant npm (Node Package Manager) avec la commande suivante :

npm installer jsonwebtoken

2. Créez une route de connexion pour générer le jeton

Ensuite, vous devrez créer une route de connexion qui générera le jeton JWT. Voici un exemple de la façon dont vous pouvez procéder :

const jwt = require('jsonwebtoken'); const express = require('express'); const app = express(); app.post('/login', (req, res) => { // Authentifier l'utilisateur utilisateur const = { identifiant : 1, nom d'utilisateur : 'test', e-mail : '[email protected]' } jwt.sign({utilisateur : utilisateur}, 'secretkey', (err, jeton) => { res.json({ jeton : jeton }); }); });

Dans l'exemple ci-dessus, nous authentifions d'abord l'utilisateur. Nous utilisons ensuite la fonction jwt.sign pour créer le jeton JWT. La fonction jwt.sign prend trois paramètres : la charge utile (dans ce cas, l'objet utilisateur), la clé secrète et une fonction de rappel.

3. Vérifier le jeton à chaque demande

Enfin, vous devrez vérifier le jeton JWT à chaque requête. Vous pouvez le faire en créant un middleware qui vérifie le jeton :

function AuthenticateToken (req, res, suivant) { constbearerHeader = req.headers['autorisation']; if (typeofbearerHeader !== 'indéfini') { const porteur = porteurHeader.split(' '); const porteurToken = porteur[1]; req.token = porteurToken ; suivant(); } autre { res.sendStatus(403); } } app.get('/api', AuthenticateToken, (req, res) => { jwt.verify(req.token, 'secretkey', (err, authData) => { si (erreur) { res.sendStatus(403); } autre { res.json({ message : 'API accédée avec succès', Date d'authentification }); } }); });

Dans l'exemple ci-dessus, le middleware AuthenticateToken vérifie si le jeton JWT est présent dans l'en-tête d'autorisation. Si le token est présent, il est vérifié à l'aide de la fonction jwt.verify. Si le jeton est valide, la demande est autorisée à se poursuivre. Si le jeton n'est pas valide, un statut d'erreur 403 (Interdit) est envoyé.

Et c'est tout ce dont vous avez besoin pour implémenter l'authentification basée sur JWT dans une API NodeJS !

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

Que faut-il pour implémenter l'authentification basée sur JWT dans une API NodeJS ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

12019. Validation des données avec le package Joi

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