Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Expirar a sessão expressa e redis do tempo


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();
});