express-session在浏览器关闭时更改会话

时间:2018-06-15 13:16:15

标签: node.js express session express-session

服务器快递(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

1 个答案:

答案 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)}
相关问题