Ceci est ma configuration pour les sessions et cela fonctionne.
J'ai défini le délai d'expiration à 5 secondes à des fins de test.
app.use(session({
store: new redisStore({
host: 'localhost',
port: 6379,
client: redisClient,
ttl: 5 // in seconds
}),
secret: 'this is secret',
resave: false,
saveUninitialized: true,
// cookie: {maxAge: 5000}
}));
J'ai défini maxAge
et ça n'a pas marché et quand j'ai mis ttl
ça a marché.
Remarque : J'ai testé et découvert que ttl
est en seconde mais maxAge est en millisecondes ! (un peu bizarre)
vous pouvez enregistrer les données de session à l'aide d'un middleware comme ci-dessous pour voir si un objet passeport existe ou non, s'il n'y a pas d'objet passeport dans les données de session, l'utilisateur est déconnecté.
app.use((req, res, next) => {
console.log('session:\n', req.session);
next();
});