gpt4 book ai didi

node.js - Express.js 和 connect-mongo session 持续时间

转载 作者:可可西里 更新时间:2023-11-01 09:36:50 26 4
gpt4 key购买 nike

我使用 express.session 和 connect-mongo 来存储用户 session 。我将 cookie maxAge 设置为 2 周后,但我想要的是,如果用户在这 2 周内处于事件状态,则 session 会延长到另外 2 周,这样当他 2 周不活动时,他的 session 就会被删除(两者都是cookie 和 mongo 中的 session )。但问题是,当他访问页面时, session 在 MongoDB 中得到更新,但 cookie 将在 2 周后过期并且不会更改它的“过期”。这是我的代码:

app.use(express.session({
secret: 'superSecretKey',
cookie: {maxAge: 3600000*24*14},
store: new MongoStore({
mongoose_connection: mongoose.connections[0],
db: 'myDb'
})
}));

我怎样才能达到我想要的?谢谢!

最佳答案

我终于解决了,你必须使用中间件来更新 session 中的任何数据,以便重新发送 cookie,就像这样:

app.use(function(req, res, next) {
req.session._garbage = Date();
req.session.touch();
next();
});

通过这种方式,maxAge 将在每次向应用发出请求时同时更新 cookie 和 session 。

关于node.js - Express.js 和 connect-mongo session 持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com