NodeJS #09 – Les sessions avec ExpressJS
Les sessions sont des éléments essentiels dans le développement web. Elles permettent de stocker des informations utilisateur de manière temporaire tout au long de la durée de la navigation. Dans cette leçon, nous allons apprendre comment gérer les sessions avec ExpressJS, un framework web populaire pour NodeJS.
Configuration d’ExpressJS pour les sessions
Pour activer la gestion des sessions dans ExpressJS, nous devons installer le package “express-session” via npm. Ensuite, nous pouvons l’importer dans notre fichier principal et le configurer en utilisant la méthode “use” de l’objet app d’Express.
const express = require('express');
const session = require('express-session');
const app = express();
app.use(session({
secret: 'mysecretkey',
resave: false,
saveUninitialized: true
}));
Utilisation des sessions
Une fois que la session est configurée, nous pouvons l’utiliser pour stocker des informations utilisateur. Par exemple, nous pouvons stocker l’ID de l’utilisateur connecté pour le reconnaitre dans les requêtes suivantes.
app.get('/login', (req, res) => {
// Vérifier les informations d'identification de l'utilisateur
// ...
// Stocker l'ID de l'utilisateur dans la session
req.session.userId = user.id;
res.send('Connecté avec succès!');
});
Gestion des sessions dans les requêtes
Nous pouvons accéder aux informations stockées dans la session à tout moment dans nos routes. Par exemple, pour vérifier si un utilisateur est connecté, nous pouvons simplement vérifier si l’ID de l’utilisateur est défini dans la session.
app.get('/profile', (req, res) => {
if (req.session.userId) {
// L'utilisateur est connecté, afficher sa page de profil
// ...
} else {
// L'utilisateur n'est pas connecté, rediriger vers la page de connexion
res.redirect('/login');
}
});
Conclusion
Les sessions sont un élément crucial dans le développement web, et ExpressJS offre une manière simple et efficace de les gérer. En utilisant le package “express-session”, nous pouvons facilement configurer et utiliser des sessions dans nos applications web NodeJS.