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

如何在Scala+Play框架中指定Cookie域名实现子域共享

解决Play Framework中子域Cookie共享问题

你遇到的问题核心是:application.conf里的session.domain配置仅对Play框架内置的session Cookie生效,而你手动创建的id和token Cookie并没有指定域名属性,所以浏览器默认将它们绑定到当前域名test.domain.com,自然无法在anothertest.domain.com中访问。

解决步骤

直接在创建自定义Cookie时显式指定domain参数即可:

Ok("some response").withCookies(
  Cookie("id", id, domain = Some(".domain.com")),
  Cookie("token", token, domain = Some(".domain.com"))
)

额外注意事项

  • 确保域名格式正确:以.开头的域名(.domain.com)会让Cookie对所有子域生效,包括test.domain.com、anothertest.domain.com等
  • 建议根据实际需求开启secure和httpOnly属性,提升Cookie安全性:
    Cookie("id", id, domain = Some(".domain.com"), secure = true, httpOnly = true)
    
  • 确认当前域名确实是目标父域的子域,浏览器不允许将Cookie设置到比当前域名更高层级的无关域名

内容的提问来源于stack exchange,提问作者Himal Regmi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:15:48