Node.js 为什么每次关闭浏览器时会话都会过期?
我像文档一样设置了express的会话maxAge 这是我的密码:Node.js 为什么每次关闭浏览器时会话都会过期?,node.js,session,express,passport.js,express-session,Node.js,Session,Express,Passport.js,Express Session,我像文档一样设置了express的会话maxAge 这是我的密码: app.use(session({ secret: process.env.SESSION_SECRET, saveUninitialized: true, resave: true, maxAge: 1000* 60 * 60 *24 * 365, store: new MongoStore({mongooseConnection:mongoose.connection}) }));
app.use(session({
secret: process.env.SESSION_SECRET,
saveUninitialized: true,
resave: true,
maxAge: 1000* 60 * 60 *24 * 365,
store: new MongoStore({mongooseConnection:mongoose.connection})
}));
但每次我关闭浏览器时,我都会发现自己已注销
另外,请注意,我正在使用Passport local、facebook和google身份验证
它们都过期了
在控制台中,我可以看到expires/maxAge部分中的connect.sid列出了“会话”,而其他cookie则有日期
我做错了什么 您需要配置express会话,并在
会话cookie
app.use(express.session({
cookie : {
maxAge: 1000* 60 * 60 *24 * 365
},
store : new MongoStore({mongooseConnection:mongoose.connection})
});
//.....
app.use(passport.session());
会话基于cookie。如果会话在浏览器关闭时消失,那么可能是因为会话cookie离开了浏览器。这可能是因为passport设置指定了非持久会话,或者是因为浏览器有一些设置在浏览器关闭时不保留cookie。您可以检查浏览器,查看原始cookie是否仍然存在。“在控制台中,我可以看到expires/maxAge部分中的connect.sid列出了“会话”,而其他cookie有日期…”-因此这不是浏览器设置。就是这样!非常感谢。