我在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
拜托,我需要帮助来解决这个问题。
答案 0 :(得分:0)
还有另一个线程(在此处发布),其中包含可以帮助您的解决方案。但它总是会重定向到每种类型错误的一般失败页面;意味着无论提供者如何,它都将重定向到相同的错误页面。
答案 1 :(得分:0)
如果您正在使用Devise与OmniAuth,则需要跳过额外的omniauth.rb初始化程序,并简单地使用config.provider" KEY"," SECRET"在initializers / devise.rb中,然后继续执行。