【问题标题】:Set-Cookie Response Header not setting cross site cookie on HerokuSet-Cookie 响应标头未在 Heroku 上设置跨站点 cookie
【发布时间】:2022-01-23 06:54:48
【问题描述】:

在本地,我的 cookie 设置得很好,但是在 Heroku 上通过跨站点调用,它们没有在 Chrome 或 Safari 中设置,这是我迄今为止尝试过的两种浏览器。我只能认为是因为跨站调用,或者是因为 Heroku 的代理设置。

我的 Set-Cookie 标头如下所示: CookieName=cookieValue; Max-Age=864; Domain=.myPurchasedDomain.net; Path=/; Expires=Tue, 21 Dec 2021 22:43:28 GMT; HttpOnly; Secure; SameSite=None

我已将我的 BE 服务器设置为信任代理,我的 FE 和 BE 都应该只能通过 https 访问。我没有任何(可见的)CORS 问题。我在我的 Express BE 中设置withCredentials: true,在我的 FE axios 选项中设置credentials: true。我在我的 FE 上使用 next.js,以防可能影响任何事情。

我不知道如何确定我的 cookie 未设置的原因。关于我接下来应该尝试什么或可能导致问题的任何想法?

编辑:我的 FE axios 调用如下所示:

axios
    .post(
      "herokuUrl/login",
      {
        /* no body */
      },
      {
        headers: {
          Authorization: jwtToken, // Variable from elsewhere
        },
        withCredentials: true,
      }
    )

【问题讨论】:

    标签: node.js reactjs heroku cookies next.js


    【解决方案1】:

    我找到了答案:

    我的 FE React 应用程序正在调用位于不同域的 BE Express 服务器。浏览器阻止设置来自不同域的 cookie。要解决此问题,请将两者放在同一个域后面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 2020-08-16
      • 2017-07-08
      • 1970-01-01
      • 2018-08-29
      • 2020-04-23
      相关资源
      最近更新 更多