18.4. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment stocker un JWT dans un cookie

Página 113

Les jetons Web JSON (JWT) constituent un moyen sécurisé et efficace 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.

Lorsque vous développez une application web avec NodeJS, il peut être nécessaire de stocker un JWT dans un cookie. Cela peut être utile pour garder un utilisateur authentifié entre les sessions. Voici un aperçu de la façon dont vous pouvez procéder.

Installation des dépendances requises

Avant de commencer à travailler avec les JWT, vous devez installer certaines dépendances. Vous aurez besoin du package « jsonwebtoken » pour créer et vérifier les JWT. Vous aurez également besoin du package « cookie-parser » pour travailler avec les cookies. Vous pouvez installer ces dépendances à l'aide de npm (Node Package Manager) :

npm installer l'analyseur de cookies jsonwebtoken

Créer un JWT

Après avoir installé les dépendances nécessaires, vous pouvez créer un JWT. Voici un exemple de la façon dont vous pouvez procéder :

const jwt = require('jsonwebtoken'); laissez la charge utile = { identifiant : utilisateur.id, email: utilisateur.email } ; let secret = 'votre-clé-secrète'; let token = jwt.sign(payload, secret);

Dans cet exemple, la charge utile est un objet qui contient des informations sur l'utilisateur. Le secret est une chaîne utilisée pour signer le jeton. La méthode 'sign' renvoie le jeton JWT.

Stockage d'un JWT dans un cookie

Une fois que vous avez créé un JWT, vous pouvez le stocker dans un cookie. Voici un exemple de la façon dont vous pouvez procéder :

const cookieParser = require('cookie-parser'); app.use(cookieParser()); app.get('/login', (req, res) => { res.cookie('token', token, { httpOnly : true }); res.json({jeton}); });

Dans cet exemple, la méthode 'cookie' est utilisée pour créer un nouveau cookie. Le premier argument est le nom du cookie, le deuxième argument est la valeur du cookie (le JWT) et le troisième argument est un objet d'options. L'option 'httpOnly' est définie sur true pour empêcher l'accès au cookie via des scripts côté client.

Vérifier un JWT

Une fois que vous avez stocké un JWT dans un cookie, vous pouvez vérifier le JWT. Voici un exemple de la façon dont vous pouvez procéder :

app.get('/profile', (req, res) => { let token = req.cookies.token; si (!jeton) { return res.status(401).json({ message : 'Non autorisé' }); } jwt.verify(jeton, secret, (erreur, décodé) => { si (erreur) { return res.status(401).json({ message : 'Non autorisé' }); } res.json({ utilisateur : décodé }); }); });

Dans cet exemple, le JWT est extrait du cookie. Si le JWT n'est pas présent, la réponse sera un message « Non autorisé ». Si le JWT est présent, il est vérifié à l'aide de la méthode « verify ». Si la vérification réussit, la réponse est la charge utile décodée.

Conclusion

Travailler avec des jetons Web JSON dans NodeJS peut sembler intimidant au début, mais une fois que vous aurez compris les bases, vous constaterez qu'il s'agit d'un moyen puissant et flexible de gérer l'authentification et l'autorisation. N'oubliez pas qu'il est important de protéger votre secret et de configurer correctement vos options de cookies pour garantir la sécurité de votre application.

J'espère que ce tutoriel vous a été utile pour comprendre comment utiliser les JWT dans NodeJS et comment les stocker dans des cookies. Si vous suivez les étapes décrites dans ce didacticiel, vous pourrez créer, stocker et vérifier avec succès des JWT dans votre application NodeJS.

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

Que faut-il pour créer un JWT dans une application NodeJS ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11418.5. Travailler avec les jetons Web JSON (JWT) dans NodeJS : comment sécuriser les routes avec JWT 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