18.2. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment générer un JWT dans NodeJS

Página 111

JSON Web Tokens (JWT) est une technologie standard ouverte (RFC 7519) qui permet l'échange sécurisé d'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. 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.

Dans NodeJS, nous pouvons utiliser des packages comme jsonwebtoken pour travailler avec les JWT. Dans ce tutoriel, nous allons explorer comment générer un JWT dans NodeJS.

Installation

Pour commencer, nous devons installer le package jsonwebtoken. Vous pouvez le faire en utilisant npm (Node Package Manager) avec la commande suivante :

npm installer jsonwebtoken

Une fois installé, vous pouvez l'importer dans votre fichier en utilisant :

const jwt = require('jsonwebtoken');

Créer un JWT

Pour créer un JWT, nous utilisons la fonction sign() du package jsonwebtoken. Cette fonction accepte trois arguments :

  1. La charge utile, qui est un objet JSON contenant les revendications. Les revendications sont des déclarations sur une entité (généralement l'utilisateur) et des informations supplémentaires.
  2. Le secret, qui est une chaîne utilisée pour signer le jeton. Ce secret doit être gardé en sécurité et ne doit jamais être révélé.
  3. Les options, qui sont un objet contenant des options supplémentaires telles que l'algorithme de signature et la validité du jeton.

Voici un exemple :

charge utile const = { identifiant : 1, nom : « John Doe », administrateur : vrai } ; const secret = 's3cr3t'; options const = { expire dans : '2h' } ; const token = jwt.sign(charge utile, secret, options) ;

Dans cet exemple, la charge utile contient trois revendications : id, name et admin. Le secret est « s3cr3t » et le jeton expire dans 2 heures.

Vérification d'un JWT

Une fois que vous avez créé un JWT, vous pouvez vérifier sa signature et décoder la charge utile à l'aide de la fonction verify() du package jsonwebtoken. Cette fonction accepte trois arguments :

  1. Le jeton, qui est la chaîne JWT que vous souhaitez vérifier.
  2. Le secret, qui est la même chaîne utilisée pour signer le jeton.
  3. Les options, qui sont un objet contenant des options supplémentaires, telles que l'algorithme de signature.

Voici un exemple :

const décodé = jwt.verify(jeton, secret);

Dans cet exemple, la fonction verify() renvoie la charge utile décodée si le jeton est valide. Si le jeton n'est pas valide (par exemple, si la signature ne correspond pas), la fonction générera une erreur.

Conclusion

Travailler avec des JWT dans NodeJS est simple et direct grâce au package jsonwebtoken. Ce package fournit des fonctions de création et de vérification de JWT, vous permettant de mettre en œuvre une authentification et une autorisation sécurisées dans vos applications NodeJS.

Il est important de se rappeler que les JWT sont aussi sécurisés que le secret utilisé pour les signer. Assurez-vous donc de garder votre secret en sécurité et de ne jamais le révéler. De plus, les JWT sont codés et non chiffrés, ce qui signifie que toute personne obtenant le jeton pourra décoder la charge utile. Par conséquent, ne placez jamais d'informations sensibles dans la charge utile d'un JWT.

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

Quel est le rôle du package jsonwebtoken dans NodeJS ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11218.3. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment valider 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