Я использую passport.js с express-session и connect-mongo .
Все отлично работает, кроме того, что когда япользователь выходит из сеанса сохраняется в базе данных.Когда сеанс истекает, я вижу, что он удален, но не после выхода из системы.
Это часть настроек:
const express = require("express");
const session = require("express-session");
const MongoStore = require('connect-mongo')(session);
app.use(passport.initialize());
app.use(passport.session());
app.use(
session({ store: new MongoStore({ dbPromise: db.getDb(),ttl: 5 * 24 * 3600/* In seconds */, touchAfter: 24 * 3600/* In seconds */ }), secret: "keyboard cat", resave: false, saveUninitialized: false })
);
Это экземпляр сеанса, хранящийся в базе данных:
{
"_id": "ppWwMDmGylNJxbApYuKasbGnaYTNSi1Y",
"expires": {
"$date": "2019-01-27T19:35:59.841Z"
},
"lastModified": {
"$date": "2019-01-22T19:35:59.841Z"
},
"session": "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"returnTo\":\"/\",\"flash\":{\"success\":[\"user lorem ipsum\"]},\"passport\":{}}"
}
Нужно ли вручную удалять сеанс в моем маршруте выхода из системы?Я думаю, что должен быть более разумный способ.