Redis
 sql >> Base de données >  >> NoSQL >> Redis

Expirer le temps express et redis session

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