这是一个协议问题,与特定的编程语言无关。
假设我们目前有:
- 使用域的网站:
example.com
- 位于以下位置的前端应用程序:
example.com/example-front
- API,网址:
example.com/api/example-data
- 所有使用HTTPS的地址
- 前端应用程序调用API登录并获得
set-cookie: data=SOME_DATA; Secure; httpOnly; Path=/; Domain=example.com
,它按预期工作
- 我们想将前端应用程序从
example.com/example-front
转移到front.example.com
- API将保持在同一地址
应该做什么(前端/后端/子域网关(才能使其工作
(已尝试设置domain=.example.com
和sameSite=None
(。
在检查了所有需要做的事情并在生产中进行了验证后,解决此问题的步骤是:
从前端角度来看:
- 如果您使用axios/XHR-添加凭据:true
- 如果您正在使用fetch-add凭据:true
从后端角度(API(:
- 添加标题:"访问控制允许来源:[指定特定子域,包括协议。例如:https://sub.example.com]">
- 添加"访问控制允许凭据:true">
- 在"set cookie"标头中,您应该提到:"httpOnly;secure;domain=example.com;sameSite=None;">