【问题标题】:Setting cookies for subdomain为子域设置 cookie
【发布时间】:2023-08-28 17:43:01
【问题描述】:

我正在以一种宁静的方式制作一个网络应用程序。 对于我的客户端,我正在使用 angularJs,同样的托管在 - 可以说 - https://domain.com

我的后端是基于 Spring Boot 构建的,我从一个子域调用所有资源 - 可以说 - https://xyz.domain.com

现在,当用户登录时,后端会向客户端发送一个仅 http 的 cookie。 我可以在响应标头中看到 cookie,但它没有在浏览器 cookie 中设置。

经过一番研究,我尝试使用 domain = .domain.com 发送 cookie 但这也没有用。

有没有办法我可以在 domain.com 为我的客户端设置来自 xyz.domain.com 的 cookie

(注意 - 我没有使用 www.domain.com )

任何帮助或线索都会很棒。

感谢您回答我的问题。

【问题讨论】:

    标签: cookies spring-boot subdomain


    【解决方案1】:

    您描述的问题与跨域 cookie 策略有关。我不知道您的确切用例,但查看 CORSP3P 标头应该会给您一个良好的开端。作为一种选择,您可以尝试通过 Javascript 手动设置 cookie。

    【讨论】:

      【解决方案2】:

      让 CORS 工作还不够,您还需要在 angular 中启用 withCredentials。

      https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

      例子:

      angular.module('example', []).config(function ($httpProvider) {
          $httpProvider.defaults.withCredentials = true;
      });
      

      【讨论】: