7.12 Utilisation des routes dans ExpressJS : utilisation de l'authentification JWT sur les routes

ExpressJS est un framework d'application Web pour Node.js qui fournit un moyen robuste de créer des serveurs Web et des API. L'un des concepts clés lorsque vous travaillez avec ExpressJS est le concept de routes. Les routes sont le chemin que le serveur doit suivre pour répondre à une demande spécifique du client.

Pour sécuriser les routes et garantir que seuls les utilisateurs authentifiés peuvent y accéder, nous pouvons utiliser l'authentification JWT (JSON Web Token). JWT est une norme (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.

Mise en œuvre de l'authentification JWT dans les routes

Pour implémenter l'authentification JWT sur les routes ExpressJS, nous devons d'abord installer le package 'jsonwebtoken' à l'aide de npm (Node Package Manager). La commande pour installer ce package est 'npm install jsonwebtoken'.

Ensuite, nous devons créer un middleware qui vérifie le jeton JWT à chaque requête. Un middleware est une fonction qui a accès à l'objet de requête (req), à l'objet de réponse (res) et à la fonction middleware suivante dans le cycle requête/réponse de l'application. La fonction middleware suivante est généralement désignée par une variable appelée « suivant ».

Voici un exemple de ce à quoi pourrait ressembler un middleware d'authentification JWT :

const jwt = require('jsonwebtoken'); function AuthenticateToken (req, res, suivant) { const authHeader = req.headers['autorisation']; jeton const = authHeader && authHeader.split(' ')[1]; if (token == null) renvoie res.sendStatus(401); // s'il n'y a pas de token, renvoie une erreur 401 jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, utilisateur) => { si (erreur) renvoie res.sendStatus(403); // si le token n'est pas valide, renvoie une erreur 403 req.user = utilisateur ; suivant(); // passe l'exécution au prochain middleware }); }

Le middleware 'authenticateToken' extrait le jeton de l'en-tête d'autorisation de la requête, vérifie que le jeton est présent, puis vérifie que le jeton est valide à l'aide de la fonction 'verify' du package 'jsonwebtoken'. Si le jeton est valide, il ajoute l'utilisateur à l'objet de requête et transmet l'exécution au middleware suivant.

Maintenant, pour sécuriser une route avec ce middleware, il suffit d'ajouter 'authenticateToken' comme argument à la fonction route, comme dans cet exemple :

app.get('/protected',authenticateToken, (req, res) => { res.send('Ceci est une route protégée'); });

Dans cet exemple, la route '/protected' n'est accessible que si le client envoie un jeton JWT valide dans l'en-tête d'autorisation de la requête.

Conclusion

Travailler avec des routes dans ExpressJS est un élément fondamental du développement d'API. L'ajout de l'authentification JWT aux routes vous permet de sécuriser certaines parties de l'API et de garantir que seuls les utilisateurs authentifiés peuvent y accéder. Bien que la mise en œuvre de l'authentification JWT puisse sembler complexe au début, cela devient assez simple une fois que vous comprenez les bases du fonctionnement des jetons et du middleware JWT.

Nous espérons que ce chapitre vous a fourni un aperçu clair de la façon de travailler avec les routes et l'authentification JWT dans ExpressJS. Dans le chapitre suivant, nous explorerons des fonctionnalités ExpressJS plus avancées et comment elles peuvent être utilisées pour créer des API plus robustes et sécurisées.

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

Quel est le rôle du middleware «authenticateToken» dans la mise en œuvre de l'authentification JWT dans les routes ExpressJS ?

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

Vous avez raté! Essayer à nouveau.

Image de l'article Travailler avec des routes dans ExpressJS : Travailler avec l'autorisation de route

Page suivante de lebook gratuit :

59Travailler avec des routes dans ExpressJS : Travailler avec l'autorisation de route

3 minutes

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