Esta é minha configuração para sessões e funciona.
Defino o tempo de expiração para 5 segundos para fins de teste.
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}
}));
Eu defino
maxAge
e não funcionou e quando eu defino ttl
funcionou. Observação: Eu testei e descobri que
ttl
está em segundo, mas maxAge está em milissegundos! (meio estranho) você pode registrar os dados da sessão usando um middleware como abaixo para ver se um objeto de passaporte existe ou não, se não houver nenhum objeto de passaporte nos dados da sessão, o usuário será desconectado.
app.use((req, res, next) => {
console.log('session:\n', req.session);
next();
});