18.6. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment configurer l'expiration d'un JWT

Página 115

L'un des sujets les plus importants que nous aborderons dans notre cours en ligne « Comment créer des API dans NodeJS, des bases aux niveaux avancés » est l'utilisation des jetons Web JSON (JWT) dans NodeJS. JWT est un moyen 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.

Le JWT se compose de trois parties : l'en-tête, la charge utile et la signature. L'en-tête comprend généralement le type de jeton et l'algorithme de signature utilisé. La charge utile contient les revendications ou les informations transmises. 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.

L'un des aspects les plus cruciaux de l'utilisation de JWT est la configuration de l'expiration des jetons. L'expiration d'un jeton est importante car elle contribue à protéger l'application contre les menaces de sécurité potentielles. Les jetons non expirés peuvent être dangereux, car si un acteur malveillant en obtient un, il aura un accès continu au système.

Dans NodeJS, nous pouvons utiliser la bibliothèque jsonwebtoken pour travailler avec JWT. Pour installer cette bibliothèque, vous pouvez utiliser la commande npm :

npm installer jsonwebtoken

Une fois la bibliothèque installée, vous pouvez commencer à l'utiliser pour créer et vérifier des jetons. Voici un exemple de création d'un jeton avec une expiration définie :

const jwt = require('jsonwebtoken'); date constante = { identifiant : 1, nom : « John Doe » } ; const secret = 's3cr3t'; const token = jwt.sign(data, secret, { expiresIn: '1h' });

Dans cet exemple, « data » est l'objet que nous voulons encoder dans le jeton. « Secret » est la clé secrète qui sera utilisée pour signer le jeton. L'objet final transmis à la fonction jwt.sign est un objet d'options. L'option 'expiresIn' vous permet de définir l'expiration du jeton. Dans ce cas, le token expirera dans une heure.

Pour vérifier un token, vous pouvez utiliser la fonction jwt.verify. Voici un exemple :

const jwt = require('jsonwebtoken'); jeton const = '...'; // le jeton que vous avez reçu const secret = 's3cr3t'; essayer { const décodé = jwt.verify(jeton, secret); console.log (décodé); } attraper (erreur) { console.error('Jeton invalide :', err); }

Si le jeton est valide et n'a pas expiré, jwt.verify renverra l'objet décodé. Si le jeton n'est pas valide ou a expiré, une erreur sera générée.

Il est important de noter que vous devez toujours protéger la clé secrète utilisée pour signer les jetons. Si un acteur malveillant obtient votre clé secrète, il peut signer ses propres jetons et accéder à votre système. Par conséquent, dans un environnement de production, vous devez utiliser une solution de gestion des secrets pour protéger vos clés.

De plus, bien que les JWT constituent un moyen pratique de transmettre des informations entre le client et le serveur, ils ne doivent pas être utilisés pour stocker des informations sensibles à moins qu'ils ne soient cryptés. En effet, le contenu d'un JWT peut être facilement décodé et lu par toute personne obtenant le jeton.

En résumé, les JWT sont un outil puissant d'authentification et d'autorisation dans les applications NodeJS. Ils vous permettent de transmettre des informations en toute sécurité entre les parties et peuvent facilement expirer après un certain temps, contribuant ainsi à augmenter la sécurité de votre application.

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

Qu'est-ce que JWT et comment est-il utilisé dans NodeJS ?

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

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

11618.7. Travailler avec des jetons Web JSON (JWT) dans NodeJS : comment ajouter des informations supplémentaires dans 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