|
- config = Rails.application.config_for(:configuration)
-
- OmniAuth.config.add_camelization 'qq', 'QQ' if config.dig("oauth", "qq")
- # OmniAuth.config.add_camelization 'github', 'GitHub' if config.dig("oauth", "github")
- # OmniAuth.config.add_camelization 'gitee', 'Gitee' if config.dig("oauth", "gitee")
- # OmniAuth.config.add_camelization 'wechat', 'Wechat' if config.dig("oauth", "wechat")
- OmniAuth.config.logger = Rails.logger
- OmniAuth.config.allowed_request_methods = %i[get post]
- OmniAuth.config.before_request_phase = nil
- OmniAuth.config.before_callback_phase = nil
- OmniAuth.config.on_failure = Proc.new { |env|
- OmniAuth::FailureEndpoint.new(env).redirect_to_failure
- }
-
- Rails.application.config.middleware.use OmniAuth::Builder do
- if config.dig("oauth", "qq")
- provider :qq, config.dig("oauth", "qq", "appid"), config.dig("oauth", "github", "secret"), { provider_ignores_state: true }
- end
- if config.dig("oauth", "github").present?
- provider :github, config.dig("oauth", "github", "appid"), config.dig("oauth", "github", "secret"), { provider_ignores_state: true, scope: "user:email" }
- end
- if config.dig("oauth", "gitee").present?
- provider :gitee, config.dig("oauth", "gitee", "appid"), config.dig("oauth", "gitee", "secret"), { provider_ignores_state: true, scope: "user_info emails" }
- end
- if config.dig("oauth", "wechat").present?
- provider :wechat, config.dig("oauth", "wechat", "appid"), config.dig("oauth", "wechat", "secret"), { provider_ignores_state: true, scope: "snsapi_login" }
- end
- end
|