You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为不同源子域名设置独立认证Cookie?

实现不同子域名独立Cookie的解决方案

首先明确:默认情况下,浏览器会将Cookie绑定到设置它的具体域名(不含父域名),只有当Cookie的Domain属性显式设置为.app.com时,才会在所有app.com的子域名间共享。你的问题根源应该是登录时设置Cookie的Domain被指定为了.app.com,导致跨子域名共享。

具体调整方案

  • 设置Cookie时不指定Domain属性:当在admin.app.com登录时,让API返回的Cookie不包含Domain字段,浏览器会自动将该Cookie绑定到admin.app.com,不会发送给user.app.com;同理,user.app.com登录时设置的Cookie也只会绑定到自身。
  • 显式指定具体子域名作为Domain:如果需要明确控制,可以将Cookie的Domain设置为admin.app.com(对应管理员站点)和user.app.com(对应用户站点),这样浏览器只会向匹配的域名发送对应的Cookie。

结合AWS API Gateway的配置注意事项

  1. 在API Gateway的集成响应中配置Cookie:确保在设置认证Cookie时,不要添加Domain=.app.com的属性。例如,在Lambda或后端服务返回的响应头中,Cookie应设置为类似:
    Set-Cookie: auth_token=xxx; Path=/; HttpOnly; Secure; SameSite=Strict
    
    而非:
    Set-Cookie: auth_token=xxx; Domain=.app.com; Path=/; HttpOnly; Secure; SameSite=Strict
    
  2. CORS配置无需修改:你当前的*.app.com跨域配置可以保留,只要Cookie的Domain设置正确,浏览器会自动处理不同子域名的Cookie隔离。

验证方法

在admin.app.com登录后,打开浏览器开发者工具(Application/Cookie面板),查看该域名下的Cookie是否没有Domain属性,或Domain值为admin.app.com;切换到user.app.com后,该面板中应看不到admin.app.com的Cookie,此时访问API时也不会携带该Cookie。

内容的提问来源于stack exchange,提问作者Andrew Porritt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:12:05