express-session 在浏览器关闭时更改会话
express-session Changes the session when the browser is closed
Express (4.16.3) 上的服务器,express-session (1.15.6) 模块可以正常工作。
代码:
// ...
app.use(session({
secret: 'mySecret',
resave: false,
saveUninitialized: true,
store: new MongoDBStore({
uri: 'my-url',
collection: 'sessions'
})
}))
// ...
问题的实质:我打开 Yandex 浏览器 - 分配一个会话,然后关闭它,当我重新打开它时 - 一个新会话。问题是授权与会话相关。
在 Yandex 浏览器、microsoft EDGE 和所有移动浏览器中都存在该问题,而在 chrome 和 opera 中可以正常运行。
帮忙解决问题或者有什么东西可以替代 express-sessions 模块
发生这种情况是因为您的浏览器默认会在浏览器关闭时使 cookie 过期。为了解决这个问题,您可以将 cookie:{ maxAge: 60000} 添加到您的会话中。
app.use(session({
secret: 'mySecret',
resave: false,
cookie:{ maxAge: 60000},
saveUninitialized: true,
store: new MongoDBStore({
uri: 'my-url',
collection: 'sessions'
})
如果想让cookie永不过期,最好的办法就是设置一个大的数字。
// this will it expire in 200 years
cookie: { maxAge: 9000000000000}
或一个非常遥远的未来日期 属性。
// this will expire in year 9999
cookie: {expires: new Date(253402300000000)}
Express (4.16.3) 上的服务器,express-session (1.15.6) 模块可以正常工作。
代码:
// ...
app.use(session({
secret: 'mySecret',
resave: false,
saveUninitialized: true,
store: new MongoDBStore({
uri: 'my-url',
collection: 'sessions'
})
}))
// ...
问题的实质:我打开 Yandex 浏览器 - 分配一个会话,然后关闭它,当我重新打开它时 - 一个新会话。问题是授权与会话相关。
在 Yandex 浏览器、microsoft EDGE 和所有移动浏览器中都存在该问题,而在 chrome 和 opera 中可以正常运行。
帮忙解决问题或者有什么东西可以替代 express-sessions 模块
发生这种情况是因为您的浏览器默认会在浏览器关闭时使 cookie 过期。为了解决这个问题,您可以将 cookie:{ maxAge: 60000} 添加到您的会话中。
app.use(session({
secret: 'mySecret',
resave: false,
cookie:{ maxAge: 60000},
saveUninitialized: true,
store: new MongoDBStore({
uri: 'my-url',
collection: 'sessions'
})
如果想让cookie永不过期,最好的办法就是设置一个大的数字。
// this will it expire in 200 years
cookie: { maxAge: 9000000000000}
或一个非常遥远的未来日期 属性。
// this will expire in year 9999
cookie: {expires: new Date(253402300000000)}