18 ruby dns session ruby-on-rails
我一直在努力解决这个问题已经有一段时间了,并且无法找到解决方案.我需要用户能够通过一次登录查看多个顶级域名.
我的理解是,这需要设置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
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试从中提取值时,这似乎不起作用session[:session_domain]
.
任何帮助是极大的赞赏.
这个有点棘手.由于cookie只能分配给(并从中检索)当前域(例如"forms.example.com")和父域(".example.com",但不是".com"),但不能分配给其他域("othersite.com"),你必须找到另一种解决方案.这与Rails无关,但与cookies的工作方式有关.
编辑:会话依赖于客户端特定的句柄,存储在cookie中,这就是会话也不能跨域工作的原因.
这个站点有一个可能的解决方案来创建跨域cookie,这是我所知道的最干净的方式,虽然它可能有一些安全隐患.更复杂的版本将使服务器直接通过某个安全通道进行通信.
如果您正在寻找更通用的单一登录服务,请尝试实现某种形式的OpenID.
归档时间: |
|
查看次数: |
10500 次 |
最近记录: |