![](/img/trans.png)
[英]How to rescue OmniAuth::Strategies::OAuth2::CallbackError?
[英]Handling OmniAuth::Strategies::OAuth2::CallbackError in OmniAuth
我該如何處理錯誤:
OmniAuth::Strategies::OAuth2::CallbackError
...由OmniAuth在用戶進入Facebook登錄名后決定取消?
我看到了一些與此相關的主題,但是沒有一個解決方案對我有用。
我嘗試放置此:
OmniAuth.config.on_failure = UsersController.action(:oauth_failure)
...無法成功導入omniauth.rb
初始化程序文件。
我在Rails 4.0.2中使用omniauth-facebook gem。
任何幫助,不勝感激。
非常感謝! 邁克爾。
我的gemfile.lock文件揭示了與omniauth-facebook gem有關的以下gem:
oauth2 (0.8.1)
faraday (~> 0.8)
httpauth (~> 0.1)
jwt (~> 0.1.4)
multi_json (~> 1.0)
rack (~> 1.2)
omniauth (1.1.4)
hashie (>= 1.2, < 3)
rack
omniauth-facebook (1.5.1)
omniauth-oauth2 (~> 1.1.0)
omniauth-oauth2 (1.1.1)
oauth2 (~> 0.8.0)
omniauth (~> 1.0)
我將omniauth-facebook
gem升級到了1.0.6版,現在它可以按預期運行。
對於遇到此問題並想捕獲此錯誤的其他人,這是您需要的:
/config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, 'xxx', 'xxx', scope: "email,publish_stream,user_location,user_birthday"
end
/config/initializers/omniauth_failure_callback.rb
OmniAuth.config.on_failure = Proc.new do |env|
UsersController.action(:omniauth_failure).call(env)
end
/app/controllers/users_controller.rb
def omniauth_failure
flash[:danger] = "Unable to connect with Facebook at this time."
redirect_to root_url
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.