Skip to content

cookie 可以实现在不同域名下共享吗?

参考答案:

cookie 无法在不同主域之间直接共享,浏览器的同源策略限制了跨域访问 cookie 的能力。


具体规则如下:

1. 子域之间可以共享(设置 Domain 属性)

http
Set-Cookie: key=value; Domain=.example.com

此时 a.example.comb.example.com 可共享该 cookie。

2. 不同主域(如 a.com 与 b.com)无法共享

浏览器会隔离 cookie,只能在当前主域及其子域下访问。不能通过设置 Domain 来突破这一限制。


  1. 通过后端中转

    • 使用统一的认证服务器或中间页进行跳转登录,实现服务端的 cookie 写入。
  2. 使用前端跨域通信(如 postMessage)

    • 在两个页面之间通过 iframe + postMessage 交换身份信息,但无法直接共享 cookie,只能传 token。
  3. 使用统一的顶级域名 + 子域部署系统

    • 例如统一为 app.example.com,再挂多个子路径(推荐方式)

题目要点:

  • cookie 不能在不同主域之间共享
  • 子域之间可以通过设置 Domain 属性共享
  • 跨主域可考虑 token + 中转登录 等方案实现身份同步