我在domain.com上托管了一个Rails应用,并使用此路由配置在不同的域上安装了引擎:
Rails.application.routes.draw do
mount Some::Engine => '/', as: 'some', constraints: { domain: 'other_domain.com' }
end
有没有办法,无论 hacky 如何在两个域上访问同一个会话?
答案 0 :(得分:1)
您的首要问题是会话基于Cookie,而您的浏览器在向otherdomain.com提出请求时,不会发送domain.com设置的Cookie。
如果切换到会话存储区,其中会话cookie只标识某个数据存储中的行(例如memcached,redis等),那么您只需要共享此会话ID。
我自己没有这样做,但我已经看到以下实施。
现在,您的所有域都在相同的数据存储中存储具有相同会话ID的会话数据:您正在共享会话
我倾向于说,如果你真的需要分享会话信息(例如,只是身份),那么你可能会为自己创造问题,但你确实说过你对任何事情都持开放态度。