Esta es mi configuración para las sesiones y funciona.
Configuré el tiempo de caducidad en 5 segundos con fines de prueba.
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}
}));
Configuré maxAge
y no funcionó y cuando configuré ttl
funcionó.
ttl
está en segundo pero maxAge está en milisegundos. (un poco raro)
puede registrar los datos de la sesión usando un middleware como el siguiente para ver si existe un objeto de pasaporte o no, si no hay ningún objeto de pasaporte en los datos de la sesión, el usuario se desconecta.
app.use((req, res, next) => {
console.log('session:\n', req.session);
next();
});