Node.js 为什么每次关闭浏览器时会话都会过期?

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}) }));

我像文档一样设置了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})
}));
但每次我关闭浏览器时,我都会发现自己已注销

另外,请注意,我正在使用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有日期…”-因此这不是浏览器设置。就是这样!非常感谢。