尝试取消弹出窗口时出现 Omniauth+facebook 错误

问题描述 投票:0回答:3

我在 Rails 应用程序中使用omniauth-facebook gem 来允许用户通过 facebook 登录/注册。它运作良好。但我的问题是,当我单击取消按钮时,我收到以下错误

(facebook) Callback phase initiated.
(facebook) Authentication failure! invalid_credentials: OmniAuth::Strategies::OAuth2::CallbackError, OmniAuth::Strategies::OAuth2::CallbackError


Started GET "/auth/facebook/callback?error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request." for 127.0.0.1 at 2012-05-18 11:42:36 +0530

怎么了?添加 /auth/failure => 'pages#home' 也不起作用。请帮忙

facebook ruby-on-rails-3 callback omniauth
3个回答
6
投票

查看 https://github.com/intridea/omniauth/wiki/FAQ 的最后一部分,看看是否有帮助。建议添加

OmniAuth.config.on_failure = Proc.new { |env|
  OmniAuth::FailureEndpoint.new(env).redirect_to_failure
}

到您的omniauth 初始化程序。这在本地对我有用,然后您只需要定义您的 /auth/failure 路线和操作。


0
投票

我在本地调试(localhost)时遇到了同样的问题。
在公共网址上它有效,它可能需要 FB 才能“看到”你。

您可以在公共网址上进行测试,或者使用一些隧道之王(localtunnel是一个超级简单的示例)。

HTH


0
投票
OmniAuth.config.on_failure = Proc.new { |env|
  [302, {'Location' => 'http://localhost:3001/login'}, []]
}

用它来修复错误

© www.soinside.com 2019 - 2024. All rights reserved.