ruby-on-rails – Rails – 多个顶级域名和一个会话/ cookie - 代码日志

ruby-on-rails – Rails – 多个顶级域名和一个会话/ cookie

我一直在努力争取一段时间,并没有能力
找到一个解决方案。我需要一个用户才能查看多个顶级
具有单一登录的域。

我的理解是,这需要在environment.rb和
用before_dispatch调用。这是我想出来的:

require 'activesupport'
require 'dispatcher'
module ActionController
   class Dispatcher

      def set_session_domain
         ActionController::Base.session_options.update :session_domain => "#{@request.host}"
      end 

      before_dispatch :set_session_domain
   end
end

但是,当我尝试拉取价值观时,这似乎并不奏效
来自会话[:session_domain]。

任何帮助是极大的赞赏。

这个有点棘手。由于Cookie只能分配给当前域(“forms.example.com”)和父域(“.example.com”但不是“.com”),而不是其他域(“othersite.com”),您必须找到自己另一个解决方案。这与Rails无关,但是Cookie如何工作。

编辑:会话依赖于特定于客户端的句柄,存储在一个cookie中,这就是为什么会话也不会跨域运行。

This site有一个可能的解决方案,用于创建跨域cookie,这是我所了解的最干净的方式,尽管它可能有一些安全隐患。更复杂的版本将使服务器通过某些安全渠道直接进行通信。

如果您正在寻找更通用的单一登录服务,请尝试实施某种形式的OpenID

http://stackoverflow.com/questions/377137/rails-multiple-top-level-domains-and-a-single-session-cookie

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – Rails – 多个顶级域名和一个会话/ cookie