18.1. Travailler avec les jetons Web JSON (JWT) dans NodeJS : que sont les jetons Web JSON (JWT)

Página 110

18.1 Travailler avec les jetons Web JSON (JWT) dans NodeJS

Les jetons Web JSON, ou JWT, font partie intégrante du développement Web moderne, fournissant une méthode d'authentification et d'autorisation sécurisée et efficace. Ils sont particulièrement utiles dans les API, où la communication entre le client et le serveur doit être rapide et sécurisée. Dans ce chapitre, nous explorerons ce que sont les JWT, comment ils fonctionnent et comment nous pouvons les implémenter dans une API NodeJS.

Que sont les jetons Web JSON ?

Les JWT sont des jetons d'accès utilisés pour authentifier les utilisateurs et transmettre des informations entre les parties. Ils sont compressés au format JSON, ce qui les rend légers et faciles à diffuser. Chaque JWT est composé de trois parties : l'en-tête, la charge utile et la signature.

L'en-tête contient généralement deux parties : le type de jeton, qui est JWT, et l'algorithme de signature, tel que HMAC SHA256 ou RSA. La charge utile, également connue sous le nom de « revendications », correspond à des revendications concernant une entité (généralement l'utilisateur) et des métadonnées supplémentaires. 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 message n'a pas été modifié en cours de route.

Comment fonctionnent les JWT ?

Lorsqu'un utilisateur s'authentifie avec succès auprès d'une application, le serveur crée un JWT et le renvoie à l'utilisateur. Ce jeton est généralement stocké localement sur l'appareil de l'utilisateur et envoyé avec chaque requête ultérieure au serveur. Le serveur vérifie la signature du jeton pour s'assurer qu'il est valide, puis utilise les informations contenues dans la charge utile pour traiter la demande.

L'un des principaux avantages des JWT est qu'ils sont autonomes. Cela signifie que toutes les informations nécessaires pour authentifier l'utilisateur sont contenues dans le jeton, éliminant ainsi le besoin de requêtes supplémentaires dans la base de données pour vérifier l'identité de l'utilisateur. Cela peut entraîner de meilleures performances et une meilleure évolutivité.

Implémentation des JWT dans NodeJS

Pour travailler avec les JWT dans NodeJS, nous avons besoin du package 'jsonwebtoken'. Ce package fournit un certain nombre de fonctions utiles pour travailler avec les JWT, notamment des fonctions de création, de vérification et de décodage de jetons.

Pour créer un JWT, nous utilisons la fonction 'sign'. Cette fonction prend trois arguments : la charge utile, une clé secrète utilisée pour signer le jeton et un objet d'options. L'objet options peut inclure des éléments tels que l'algorithme de signature à utiliser et la durée de vie du jeton.

const jwt = require('jsonwebtoken'); charge utile const = { nom d'utilisateur : 'JohnDoe', rôle : « administrateur » } ; const secret = 's3cr3t'; options const = { expire dans : '2h' } ; const token = jwt.sign(charge utile, secret, options) ;

Pour vérifier un JWT, nous utilisons la fonction « vérifier ». Cette fonction prend trois arguments : le jeton, la clé secrète utilisée pour signer le jeton et une fonction de rappel. La fonction de rappel est appelée avec le résultat de la vérification.

const jwt = require('jsonwebtoken'); jeton const = '...'; // le jeton reçu const secret = 's3cr3t'; jwt.verify(jeton, secret, (erreur, décodé) => { si (erreur) { console.log('Jeton invalide'); } autre { console.log('Jeton valide', décodé); } });

Il est important de noter que la clé secrète utilisée pour signer et vérifier le jeton doit être conservée en sécurité. Si un attaquant accède à la clé secrète, il peut créer ses propres jetons et obtenir un accès non autorisé à l'application.

En bref, les JWT offrent un moyen sécurisé et efficace de gérer l'authentification et l'autorisation dans les API. Ils sont particulièrement utiles dans NodeJS, où nous pouvons profiter du package « jsonwebtoken » pour créer, vérifier et décoder facilement des jetons. < /p>

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

Que sont les jetons Web JSON (JWT) et comment sont-ils implémentés dans NodeJS ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11118.2. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment générer un 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