【问题标题】:nodejs connect session cookie not setting on some machinesnodejs连接会话cookie未在某些机器上设置
【发布时间】:2012-04-14 09:05:22
【问题描述】:

我的 nodejs 应用程序有一个最小的连接会话设置:

connect.cookieParser(),
connect.session({ secret: 'asdfg', cookie: { maxAge: 60 * 60 * 1000 }}),

但是在其他机器上测试我的站点时,会话 cookie 根本没有设置。在我的 Mac 上,会话 cookie 在 Chrome 和 Firefox 中都正常设置。在我的虚拟 Windows 上,会话 cookie 没有在 Chrome 或 Firefox 上设置。在一个朋友的 Windows 上,会话显然也没有设置,但在另一个朋友的 Windows 上,会话似乎正在工作。我检查了我的虚拟 Windows Chrome 上的 cookie 设置和标题,但似乎没有什么不同,它只是拒绝创建 cookie...

知道为什么会话 cookie 显然会设置在某些机器上而不是其他机器上吗?

【问题讨论】:

  • 哦,呃……请务必检查您的系统时区,否则您的会话可能会立即到期。我另一个朋友的电脑也是全新的,所以可能是同样的问题。 =/
  • 我已经看到我们的网络应用也出现了这个问题。
  • 如何查看时区?这正是我正在发生的事情......在 expires 中添加另一个零可以修复它,但我真的不想在超时时间中添加另一个小时 :)
  • 它应该在你设置时钟时间的地方。

标签: session node.js cookies connect


【解决方案1】:

发布后不久我终于明白了答案......

请务必检查您的系统时区,否则您的会话可能会立即到期。即使时间正确,时区也会从 UTC 偏移该时间,这是会话使用的。它会影响任何会话的到期时间,但设置为仅在一两个小时内到期的会话可能根本不会设置。

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 2020-02-07
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 2020-11-27
    • 2015-02-26
    相关资源
    最近更新 更多