cookie 可以实现在不同域名下共享吗?
参考答案:
cookie 无法在不同主域之间直接共享,浏览器的同源策略限制了跨域访问 cookie 的能力。
具体规则如下:
1. 子域之间可以共享(设置 Domain 属性)
http
Set-Cookie: key=value; Domain=.example.com此时 a.example.com 与 b.example.com 可共享该 cookie。
2. 不同主域(如 a.com 与 b.com)无法共享
浏览器会隔离 cookie,只能在当前主域及其子域下访问。不能通过设置 Domain 来突破这一限制。
替代方案(不同域 cookie 共享):
通过后端中转
- 使用统一的认证服务器或中间页进行跳转登录,实现服务端的 cookie 写入。
使用前端跨域通信(如 postMessage)
- 在两个页面之间通过 iframe +
postMessage交换身份信息,但无法直接共享 cookie,只能传 token。
- 在两个页面之间通过 iframe +
使用统一的顶级域名 + 子域部署系统
- 例如统一为
app.example.com,再挂多个子路径(推荐方式)
- 例如统一为
题目要点:
- cookie 不能在不同主域之间共享
- 子域之间可以通过设置
Domain属性共享 - 跨主域可考虑 token + 中转登录 等方案实现身份同步