Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Expire Time Express und Redis Session

Dies ist meine Konfiguration für Sitzungen und sie funktioniert.
Zu Testzwecken habe ich die Ablaufzeit auf 5 Sekunden eingestellt.

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

Ich setze maxAge und es hat nicht funktioniert und wenn ich ttl eingestellt habe es funktionierte.

Hinweis: Ich habe getestet und herausgefunden, dass ttl ist in Sekunden, aber maxAge ist in Millisekunden! (irgendwie komisch)

Sie können Sitzungsdaten mit einer Middleware wie unten protokollieren, um zu sehen, ob ein Passport-Objekt vorhanden ist oder nicht. Wenn die Sitzungsdaten kein Passport-Objekt enthalten, wird der Benutzer abgemeldet.

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