Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Omniauth定制供应商和策略,带门卫_Ruby On Rails_Oauth 2.0_Omniauth_Csrf_Doorkeeper - Fatal编程技术网

Ruby on 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

我有一个定制的OAuth2提供程序(是一个Rails应用程序),它是用

并使用OmniAuth构建自定义客户端策略

问题是当我在
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”会起作用:)