Ruby on rails Omniauth定制供应商和策略,带门卫
我有一个定制的OAuth2提供程序(是一个Rails应用程序),它是用 并使用OmniAuth构建自定义客户端策略 问题是当我在Ruby on rails Omniauth定制供应商和策略,带门卫,ruby-on-rails,oauth-2.0,omniauth,csrf,doorkeeper,Ruby On Rails,Oauth 2.0,Omniauth,Csrf,Doorkeeper,我有一个定制的OAuth2提供程序(是一个Rails应用程序),它是用 并使用OmniAuth构建自定义客户端策略 问题是当我在config/initializers/designe.rb config.omniauth :mystrategy, "apikey", "secret" 然后我会得到这个错误: (mystrategy) Callback phase initiated. (mystrategy) Authentication failure! invalid_credential
config/initializers/designe.rb
config.omniauth :mystrategy, "apikey", "secret"
然后我会得到这个错误:
(mystrategy) Callback phase initiated.
(mystrategy) Authentication failure! invalid_credentials:
OmniAuth::Strategies::OAuth2::CallbackError, OmniAuth::Strategies::OAuth2::CallbackError
如果我将designe.rb
中的配置更改为
config.omniauth :mystrategy, "apikey", "secret", {:provider_ignores_state => true}
然后一切都好了
我想不出是什么导致了这个问题。问题似乎在于Rails的CSRF保护?尝试将omniauth-oauth2更改为版本
gem "omniauth-oauth2", "~> 1.0.2"
IIRC我已将其设置为config.omniauth:strategy\u name,SiteConfig.client\u id,SiteConfig.client\u secret,:scope=>public。范围设置为public我认为范围不是导致此问题的原因?我不确定,但在我的情况下设置为“public”会起作用:)