服务器快递(4.16.3),快递会话(1.15.6)模块工作。
代码:
// ...
app.use(session({
secret: 'mySecret',
resave: false,
saveUninitialized: true,
store: new MongoDBStore({
uri: 'my-url',
collection: 'sessions'
})
}))
// ...
问题的实质:我打开Yandex浏览器 - 分配一个会话,然后关闭它,当我重新打开它时 - 一个新的会话。问题是授权与会话有关。
在Yandex浏览器,微软EDGE和所有移动浏览器中都可以看到问题,而在chrome和opera中工作正常。
帮助解决问题或者某些东西可以取代模块express-sessions
答案 0 :(得分:0)
这种情况正在发生,因为浏览器默认在浏览器关闭时使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)}