节点模块“ connect-mongo”不会在注销时删除会话

时间:2019-01-22 19:33:56

标签: node.js mongodb passport.js connect-mongo

我正在将 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\":{}}"
}

我应该在注销路径中手动删除会话吗?我认为应该有更合理的方法。

0 个答案:

没有答案