2013-12-13 46 views
2

我在Rails应用程序的登录,我的omniauth.rb使用Omniauth是,如下所示:如何解决“OmniAuth :: Strategies :: OAuth2 :: CallbackError”错误?

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

请,我需要帮助解决这个问题。

+0

您链接的第一个答案肯定涵盖了您的问题。你可能只是忘了重启。每次更改配置文件时,都必须重新启动Rails应用程序。 – Ashitaka

+0

[如何拯救OmniAuth :: Strategies :: OAuth2 :: CallbackError?]的可能重复(http://stackoverflow.com/questions/10737200/how-to-rescue-omniauthstrategiesoauth2callbackerror) – Ashitaka

回答

0

如果使用的是设计与OmniAuth你需要跳过额外omniauth.rb初始化,只是config.provider“KEY”,“秘密”初始化/ devise.rb内,然后用矣你的实现。