簡體   English   中英

在OmniAuth中處理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中使用omn​​iauth-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM