我有一个Rails应用托管在domain.com上,并且使用此路由配置将引擎安装在另一个域上:
Rails.application.routes.draw do
mount Some::Engine => '/', as: 'some', constraints: { domain: 'other_domain.com' }
end
有什么办法,无论多么hacky,都可以在两个域上访问相同的会话?
您遇到的第一个问题是,会话基于Cookie,并且在向otherdomain.com发出请求时,您的浏览器不会发送domain.com设置的cookie。
如果您切换到会话存储,其中会话cookie仅标识某些数据存储中的一行(例如,memcached,redis等),那么您只需要共享此会话ID。
我自己还没有完成此操作,但是我看到了以下实现。
现在,您所有的域都将具有相同会话ID的会话数据存储在同一数据存储区中:您正在共享会话
我倾向于说,如果您确实需要共享会话信息(例如,与身份无关),那么您可能会为自己制造问题,但是您确实说过对任何事情都持开放态度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句