如何解决“OmniAuth :: Strategies :: OAuth2 :: CallbackError”错误?

时间:2013-12-13 22:08:09

标签: ruby-on-rails facebook omniauth

我在Rails应用程序中使用Omniauth进行登录,我的omniauth.rb如下所示:

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
   provider :facebook, 'xxxxxxx', 'xxxxxxx'
   provider :google_oauth2, 'xxxxxxxxx','xxxxxxxx'
end

当用户尝试登录(通过Facebook或Goolge)并拒绝权限时,会收到以下错误:

 OmniAuth::Strategies::OAuth2::CallbackError 

使用以下参数:

{"error"=>"access_denied",
 "error_code"=>"200",
 "error_description"=>"Permissions error",
 "error_reason"=>"user_denied",
 "state"=>"60daee5f78d9cc28972050ae8ca8f950bb4ed5958302bcea"}

如果用户接受,没问题,一切正常。

我已经尝试了一些与此错误相关的可能解决方案,并在此网站上列出,但没有解决我的问题。例如:

How to rescue OmniAuth::Strategies::OAuth2::CallbackError?

Omniauth+facebook error when trying to cancel the popup

拜托,我需要帮助来解决这个问题。

2 个答案:

答案 0 :(得分:0)

还有另一个线程(在此处发布),其中包含可以帮助您的解决方案。但它总是会重定向到每种类型错误的一般失败页面;意味着无论提供者如何,它都将重定向到相同的错误页面。

How to rescue OmniAuth::Strategies::OAuth2::CallbackError?

答案 1 :(得分:0)

如果您正在使用Devise与OmniAuth,则需要跳过额外的omniauth.rb初始化程序,并简单地使用config.provider" KEY"," SECRET"在initializers / devise.rb中,然后继续执行。