gpt4 book ai didi

node.js - express-session 浏览器关闭时更改 session

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:58 25 4
gpt4 key购买 nike

服务器位于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 浏览器 - 分配一个 session ,然后关闭它,当我重新打开它时 - 一个新 session 。问题是授权与 session 相关联。

在 Yandex 浏览器、microsoft EDGE 和所有移动浏览器中都会出现此问题,而在 Chrome 和 Opera 中则可以正常工作。

帮助解决问题或者也许有什么东西可以替代模块express-sessions

最佳答案

发生这种情况是因为您的浏览器默认在关闭浏览器时使 cookie 过期。为了解决这个问题,您可以将 cookie:{ maxAge: 60000} 添加到您的 session 中。

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}

或者过期属性中非常遥远的 future 日期。

// this will expire in year 9999 
cookie: {expires: new Date(253402300000000)}

关于node.js - express-session 浏览器关闭时更改 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50876429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com