加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – 使用带有多个IDP的omniauth-saml

发布时间:2020-12-16 19:11:41 所属栏目:百科 来源:网络整理
导读:我最终想要的是能够通过设计正常登录或选择使用SAML登录.所以我读到,如果我整合omniauth和saml,那么omniauth和devise,我可以实现这一点. 我的问题是,我有不同的国内流离失所者,我想从中选择.所以我没有一个:idp_sso_target_url,但很多.所以我的问题是如何动
我最终想要的是能够通过设计正常登录或选择使用SAML登录.所以我读到,如果我整合omniauth和saml,那么omniauth和devise,我可以实现这一点.

我的问题是,我有不同的国内流离失所者,我想从中选择.所以我没有一个:idp_sso_target_url,但很多.所以我的问题是如何动态更改target_url的值.目前omniauth-saml gem在config / initializers目录中定义了这个值.

谢谢,

解决方法

您可以在db中存储每个提供程序的设置,然后在请求时在设置阶段配置omniauth.例如:
SETUP_PROC = lambda do |env| 
  request = Rack::Request.new(env)
  user = User.find_by_subdomain(request.subdomain)
  env['omniauth.strategy'].options[:consumer_key] = user.consumer_key
  env['omniauth.strategy'].options[:consumer_secret] = user.consumer_secret
end

use OmniAuth::Builder.new do
  provider :twitter,:setup => SETUP_PROC
end

有关更多信息,请参见https://github.com/intridea/omniauth/wiki/Setup-Phase.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读