每次我关闭所有浏览器窗口然后再次打开 Web 应用程序时,都会建立一个新会话,这意味着我必须再次进行身份验证。
供您参考,我使用express@4.14.0
作为 Web 应用程序框架,express-session@1.14.1
+connect-mongo@1.3.2
作为中间件来存储会话和passport@0.3.2
进行身份验证。
下面是 cookie 和 session 配置的代码:
// CookieParser should be above session
app.use(cookieParser());
// Express MongoDB session storage
app.use(session({
resave: true,
saveUninitialized: true,
name: config.sessionName,
secret: config.sessionSecret,
store: new MongoStore({
mongooseConnection: db.connection,
collection: config.sessionCollection
})
}));
存储在 MongoDB 中的“旧”会话还有两周到期。
似乎 Node.js 应用程序无法从浏览器识别“旧”会话,因此创建一个“新”会话并告诉浏览器使用“新”会话。
它不会偶尔发生,但总是发生,所以我相信我的 Web 应用程序有问题。