Sommaire
Introduction à l’authentification JWT
Dans le développement d’applications web, la sécurité est un enjeu majeur. L’authentification par JSON Web Token (JWT) est une méthode populaire pour sécuriser les API. Elle permet de vérifier l’identité des utilisateurs tout en maintenant une expérience utilisateur fluide. Dans cet article, nous allons explorer comment intégrer une authentification JWT dans une application Express.
Qu’est-ce que JWT ?
JSON Web Token est un standard ouvert (RFC 7519) qui définit un moyen compact et autonome de transmettre des informations entre les parties sous forme d’objet JSON. Ces informations peuvent être vérifiées et signées grâce à une clé secrète ou à une paire de clés publique/privée.
. Les JWT sont souvent utilisés pour l’authentification et l’échange d’informations sécurisées.
Étape 1 : Installer les dépendances nécessaires
Pour commencer, vous devez installer Express et quelques bibliothèques supplémentaires. Ouvrez votre terminal et exécutez la commande suivante :
npm install express jsonwebtoken body-parserCes bibliothèques vous permettront de créer un serveur Express, de gérer les requêtes et de manipuler les JWT.
Étape 2 : Configurer votre serveur Express
Créez un fichier nommé server.js et ajoutez le code suivant :
const express = require('express');
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');
const app = express();
const PORT = 3000;
const SECRET_KEY = 'votre_clé_secrète';
app.use(bodyParser.json());Ce code initialise un serveur Express et configure le middleware pour analyser les requêtes JSON.
Étape 3 : Créer une route d’authentification
Ajoutez une route pour l’authentification des utilisateurs. Voici un exemple simple :
app.post('/login', (req, res) => {
const { username, password } = req.body;
// Vérifiez les informations d'identification (à remplacer par une vérification réelle)
if (username === 'user' && password === 'password') {
const token = jwt.sign({ username }, SECRET_KEY, { expiresIn: '1h' });
return res.json({ token });
}
return res.status(401).send('Identifiants invalides');
});Dans cet exemple, si les informations d’identification sont correctes, un JWT est généré et renvoyé au client.
Étape 4 : Protéger les routes avec JWT
Pour sécuriser vos routes, vous devez créer un middleware qui vérifie le token JWT. Ajoutez le code suivant :
function authenticateToken(req, res, next) {
const token = req.headers['authorization'] && req.headers['authorization'].split(' ')[1];
if (!token) return res.sendStatus(401);
jwt.verify(token, SECRET_KEY, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}Ensuite, appliquez ce middleware à vos routes protégées :
app.get('/protected', authenticateToken, (req, res) => {
res.send('Vous avez accès à cette route protégée, ' + req.user.username);
});Conclusion
L’intégration de l’authentification JWT dans une application Express est un processus relativement simple qui renforce la sécurité de votre API. En suivant ces étapes, vous pouvez créer un système d’authentification robuste qui protège vos données tout en offrant une expérience utilisateur fluide. N’oubliez pas de toujours garder votre clé secrète en sécurité et de mettre en œuvre des pratiques de sécurité supplémentaires pour protéger votre application.

