繁体   English   中英

Set-Cookie 响应 Header 未在 Heroku 上设置跨站点 cookie

[英]Set-Cookie Response Header not setting cross site cookie on Heroku

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

我的 Set-Cookie header 看起来像这样: CookieName=cookieValue; Max-Age=864; Domain=.myPurchasedDomain.net; Path=/; Expires=Tue, 21 Dec 2021 22:43:28 GMT; HttpOnly; Secure; SameSite=None 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,
      }
    )

我找到了答案:

我的 FE React 应用程序正在调用不同域的 BE Express 服务器。 浏览器阻止来自不同域的设置 cookies。 要修复,请将两者放在同一个域后面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM