当我关闭broswer时,会话会自动被破坏。以下是我的app.js文件中的代码。
const session = require('express-session');
const MongoSessions = require('connect-mongo')(session);
var mongo = require('mongodb').MongoClient;
var db_url = 'mongodb://localhost:27017/test';
app.use(session({
secret: '007',
resave: false,
saveUninitialized: false,
duration: 40*60 *1000,
activeDuration: 10*60*1000,
store: new MongoSessions({
url: db_url
})
}));
当用户登录时,我将用户的用户ID存储在会话中。当用户再次访问系统时,它会将其重定向到主页。要检查一下:
exports.indexPage = function (req, res, next) {
if (req.session.userid == null) {
res.render('login');
} else {
res.render('index');
}
};
当我保持浏览器打开但关闭所有选项卡并再次访问应用程序时,它工作正常。当我关闭浏览器并再次访问该应用程序时,它会将我重定向到登录页面。
答案 0 :(得分:1)
我不确定duration
和activeDuration
是什么意思,但它们不是express-session
的有效选项。
由于您没有为会话cookie设置maxAge
值,因此它会自动限制为当前浏览器会话,这意味着当您关闭浏览器时它将被销毁(正如您已经注意到的那样)
为防止这种情况,请配置maximum age(以毫秒为单位):
app.use(session({
cookie : {
maxAge : 40 * 60 * 1000
},
secret: '007',
...
}));