在根域和一个特定的子域上设置会话 cookie

Posted

技术标签:

【中文标题】在根域和一个特定的子域上设置会话 cookie【英文标题】:Setting session cookie on root domain and one specific subdomain 【发布时间】:2021-12-01 05:40:27 【问题描述】:

在我的 Rails 应用程序中,我正在使用 Vue 构建一个新的前端并添加一些 API 控制器。为了在 Vue 端进行身份验证,我想继续使用现有的 Devise 登录页面,该页面将存在于站点的根域 mydomain.com 上。 Vue 应用程序将在 app.mydomain.com 上运行。

是否可以在根域和app.mydomain.com 之间共享设计会话 cookie,但不能在任何其他子域之间共享?例如,我不想将会话 cookie 共享给 staging.mydomain.com

【问题讨论】:

【参考方案1】:

尝试创建config/initializers/session_store.rb并放在那里

Rails.application.config.session_store :cookie_store, 
  key: '_your_app_session',
  domain: %w(mydomain.com app.mydomain.com)

【讨论】:

以上是关于在根域和一个特定的子域上设置会话 cookie的主要内容,如果未能解决你的问题,请参考以下文章

如何在每个都有自己的 GTM 和 GA 容器的根域和子域之间设置跨域跟踪

如何在奏鸣曲管理员中为路由设置主机?

域和子域的 PHP 会话

跨子域的Cookie

在 Rails 中的子域之间共享会话(cookie)?

同一域树下的提权利用方式(Golden Ticket+SID History)