Ruby on rails 如何在同一rails应用程序和同一服务器中的不同域名之间共享会话?
我有两个域名,比如“example.com”和“website.com”。这些域访问与单个db连接的Ruby on rails 如何在同一rails应用程序和同一服务器中的不同域名之间共享会话?,ruby-on-rails,apache,session,ruby-on-rails-4,Ruby On Rails,Apache,Session,Ruby On Rails 4,我有两个域名,比如“example.com”和“website.com”。这些域访问与单个db连接的同一服务器和同一Rails 4应用程序。通过使用路由约束,我已重定向到所需的域url。这个Rails应用程序是通过Apache运行的 如果用户登录到example.com,则需要直接与website.com共享登录会话。不仅是身份验证会话,而且,如果我在登录前在“example.com”中设置了任何会话变量,那么该会话也应该与“website.com”共享。(反之亦然) 例如: 会话类会话[:ex
同一服务器
和同一Rails 4应用程序
。通过使用路由约束,我已重定向到所需的域url。这个Rails应用程序是通过Apache运行的
如果用户登录到example.com,则需要直接与website.com共享登录会话。不仅是身份验证会话,而且,如果我在登录前在“example.com”中设置了任何会话变量,那么该会话也应该与“website.com”共享。(反之亦然)
例如:
会话类会话[:example]=“1234”在example.com中,该会话应与website.com共享
我正在Rails中使用“Desive”进行灵活的身份验证。我相信,没有简单的方法可以做到这一点。Rails会话基于Cookie,不能在域之间共享Cookie。(它们只能在子域之间共享,例如
api.someapp.com
和someapp.com
)
对于经过身份验证的用户,您可以使用/构建某种SSO解决方案,将会话存储在服务器上,并为使用的每个域颁发某种会话ID
对于未经身份验证的用户,您可以选择一个域作为“主”域,并对该域执行一个小的jsonp/iframe/任何请求,这样您就能够在域之间共享数据
但所有这些都比使用stock Rails会话复杂得多。在另一个SO问题上使用iframe。但我还没试过。
此外,使用外观更干净的Desive authenticatable功能