【问题标题】:Make a cookie ignore a specific subdomain使 cookie 忽略特定的子域
【发布时间】:2017-10-31 00:18:24
【问题描述】:

我有三个子域,cdn.domainprivate.domainpublic.domain。因为会话是在域之间共享的,所以我在 cookie 上使用 .domain 作为域

https://tools.pingdom.com 运行测试我收到了这条消息:

Serve static content from a cookieless domain

意味着domainprivate.domainpublic.domain 上设置的 cookie 也正在为cdn.domain 设置

如何仅在 cdn.domain 上忽略 cookie?


在服务器中我使用的是 nginx 和 rails


编辑

在 Rails 上,这是我设置会话 cookie 的方式

Rails.application.config.session_store :cookie_store, key: 'server_session', domain: :all

传递domain: :all 为域.domain 生成一个cookie

这对我有用,因为会话保持在域之间。但是域 .domain 的 cookie 对域 cdn.domain 也有效,这与 PageSpeed recommendations 相悖,这就是我要解决的问题

【问题讨论】:

  • 您能否提供代码示例来说明您的 cookie 正在做什么或到目前为止您已经尝试过什么?
  • @fbelanger 进行了编辑,如果这不可能,那没关系,只需提交作为回复,以便我接受它

标签: ruby-on-rails nginx cookies


【解决方案1】:

您可以为资产获取另一个二级域(例如 assetsdomain.com)。

【讨论】:

  • 这是一个可以接受的解决方案,但如果这个问题可以在没有辅助域的情况下解决会更好
  • 在 HTTP 级别上,您可以为每个子域单独设置一个 cookie,但我认为 Rails 会话 cookie 存储无法做到这一点,您可能需要自己重新实现。
猜你喜欢
  • 2012-04-28
  • 2017-06-17
  • 2014-05-26
  • 1970-01-01
  • 2022-01-24
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多