我正在尝试构建一个SSO系统,其中不同子域下的一堆Rails 4应用程序共享一个共同的cookie。我有4个应用程序通过巫术宝石进行身份验证,2个应用程序使用ActiveAdmin和Devise。
使用Sorcery的4个应用程序按预期工作,我可以成功登录用户使用相同的会话cookie访问所有4个不同的应用程序。
我遇到了2个Devise / ActiveAdmin应用程序的问题。我添加了自定义Warden身份验证策略并配置了Devise来使用它。但我不认为该策略正在被使用,因为我继续获得401未经授权的错误和任何put语句/登录验证!以下方法从未见过。有过这方面经验的人吗?或者可能有一些帮助跟踪身份验证步骤发生的位置,以便我可以尝试添加一些日志记录?
Warden::Strategies.add(:gc_auth) do
def valid?
true
end
def authenticate!
user = AdminUser.find_by_uuid(session[:user_uuid])
user ? success!(user) : fail!("Not signed in")
end
end
config.warden do |manager|
manager.default_strategies.unshift :gc_auth
end