Redis
 sql >> Database >  >> NoSQL >> Redis

Scadenza sessione express e redis

Questa è la mia configurazione per le sessioni e funziona.
Ho impostato il tempo di scadenza a 5 secondi a scopo di 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}
}));

Ho impostato maxAge e non ha funzionato e quando ho impostato ttl ha funzionato.

Nota: Ho provato e ho scoperto che ttl è in secondo ma maxAge è in milli secondi! (un po' strano)

puoi registrare i dati della sessione utilizzando un middleware come quello di seguito per vedere se un oggetto passaporto esiste o meno, se non è presente alcun oggetto passaporto nei dati della sessione, l'utente viene disconnesso.

app.use((req, res, next) => {
    console.log('session:\n', req.session);
    next();
});