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

亚历山大·米罗诺夫

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-session 模块

飞三

发生这种情况是因为您的浏览器默认会在浏览器关闭时使 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)}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Passport.js,具有相同凭据的 Express session 跨浏览器

来自分类Dev

express-session 不会持久化,也不会向浏览器发送 cookie

来自分类Dev

express-session 无法持久化会话

来自分类Dev

ASp.NET中的用户关闭浏览器时,Session是否释放可用内存?

来自分类Dev

Asp.NET中的用户关闭浏览器时,Session是否释放可用内存?

来自分类Dev

Express会话不会保存...除非刷新浏览器?

来自分类Dev

Flask.session在关闭浏览器后仍然存在

来自分类Dev

Flask.session在关闭浏览器后仍然存在

来自分类Dev

节点JS会话错误:Express-Session已弃用

来自分类Dev

express-session不保存用户的会话数据

来自分类Dev

使用Express-Session回收过期的会话ID

来自分类Dev

Express-Session如何管理其会话存储?

来自分类Dev

express-session不会删除mongodb中的会话

来自分类Dev

如何注销并通过Passport和Express-session清除会话?

来自分类Dev

如何从 express-session 获取当前会话信息?

来自分类Dev

如何禁止通过 Express-session 存储的会话的 TTL 刷新?

来自分类Dev

如何使用node.js express-session关闭单独的会话?

来自分类Dev

关闭浏览器时的会话超时

来自分类Dev

如何使用Express Session

来自分类Dev

在Node.js和Express-Session中更改和刷新会话数据

来自分类Dev

Express-Session对会话变量所做的任何更改都不会跨路由保存

来自分类Dev

在Node.js和Express-Session中更改和刷新会话数据

来自分类Dev

使用Express-Session时,会话数据未保存到内存中

来自分类Dev

Spring Session如何在单个浏览器中支持多个会话?

来自分类Dev

Express.js服务器如何知道浏览器是否关闭或重新加载?

来自分类Dev

如何在浏览器或选项卡关闭上实现Session.Abandon()?

来自分类Dev

Express Session不会设置变量

来自分类Dev

关闭浏览器或标签浏览器时,使用OWIN关闭会话

来自分类Dev

当浏览器关闭时,阻止会话过期

Related 相关文章

  1. 1

    Passport.js,具有相同凭据的 Express session 跨浏览器

  2. 2

    express-session 不会持久化,也不会向浏览器发送 cookie

  3. 3

    express-session 无法持久化会话

  4. 4

    ASp.NET中的用户关闭浏览器时,Session是否释放可用内存?

  5. 5

    Asp.NET中的用户关闭浏览器时,Session是否释放可用内存?

  6. 6

    Express会话不会保存...除非刷新浏览器?

  7. 7

    Flask.session在关闭浏览器后仍然存在

  8. 8

    Flask.session在关闭浏览器后仍然存在

  9. 9

    节点JS会话错误:Express-Session已弃用

  10. 10

    express-session不保存用户的会话数据

  11. 11

    使用Express-Session回收过期的会话ID

  12. 12

    Express-Session如何管理其会话存储?

  13. 13

    express-session不会删除mongodb中的会话

  14. 14

    如何注销并通过Passport和Express-session清除会话?

  15. 15

    如何从 express-session 获取当前会话信息?

  16. 16

    如何禁止通过 Express-session 存储的会话的 TTL 刷新?

  17. 17

    如何使用node.js express-session关闭单独的会话?

  18. 18

    关闭浏览器时的会话超时

  19. 19

    如何使用Express Session

  20. 20

    在Node.js和Express-Session中更改和刷新会话数据

  21. 21

    Express-Session对会话变量所做的任何更改都不会跨路由保存

  22. 22

    在Node.js和Express-Session中更改和刷新会话数据

  23. 23

    使用Express-Session时,会话数据未保存到内存中

  24. 24

    Spring Session如何在单个浏览器中支持多个会话?

  25. 25

    Express.js服务器如何知道浏览器是否关闭或重新加载?

  26. 26

    如何在浏览器或选项卡关闭上实现Session.Abandon()?

  27. 27

    Express Session不会设置变量

  28. 28

    关闭浏览器或标签浏览器时,使用OWIN关闭会话

  29. 29

    当浏览器关闭时,阻止会话过期

热门标签

归档