【问题标题】:Express Session cookies not being saved in Chrome?Express Session cookie 未保存在 Chrome 中?
【发布时间】:2019-06-28 12:24:40
【问题描述】:

我设置了一个快速会话以使用存储在数据库中的 cookie。这在 Firefox 中完美运行,但它似乎永远不会保存 cookie,因此客户端永远不会反映会话。

app.use(expressSession({ 
  secret: data[0],
  cookie: { 
    httpOnly: false,
    secure: true,
    maxAge: 14 * 24 * 60 * 60 * 1000, //14 days
  },
  store: new connectMongo({mongooseConnection: mongoose.connection}),
  resave: false,
  saveUninitialized: false,
}));

在 Firefox 中,它肯定会将 cookie 保存为 connect.sid,并在页面加载之间保存数据:

在 chrome 中,它保存了我的一些浏览器端设置的 cookie,例如分析和我用 javascript 做的那些,但 connect.sid 永远不会保存。

编辑:所以我发现它与secure: true 有关,但如果我不需要,我不想禁用它。

我认为它与 xhr.withCredentials 有关系,但这似乎并没有解决它,而且页面上说它不会影响同站点请求,我的总是这样。

【问题讨论】:

  • 您找到解决问题的方法了吗?

标签: node.js express session cookies express-session


【解决方案1】:

不确定您将服务器托管在哪里,但在遇到类似问题后,您可以使用以下行,这可能是您的服务器托管在诸如 heroku 之类的地方,根据其他堆栈溢出线程PassportJS callback switch between http and https

app.set('trust proxy', 1)

【讨论】:

    猜你喜欢
    • 2020-07-16
    • 2021-10-17
    • 1970-01-01
    • 2016-02-08
    • 2019-08-02
    • 2019-05-18
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多