1

我已按照设计 wiki上的说明使用 Facebook 帐户登录。

大多数情况下,它都有效。

问题是,我将登录 ( user_omniauth_authorize_path(:facebook)),这会将我带到 Facebook 并单击“授权”按钮。然后我被重定向到我的应用程序,就像我应该做的那样,但我没有点击我的回调函数,而是点击了同一页面并出现错误flash[:notice](“无法从 Facebook 授权你,因为“凭据无效”。”)和我看到的后端:

(facebook) Callback phase initiated.
(facebook) Authentication failure! invalid_credentials: OAuth2::Error, : {"error":{"message":"Code was invalid or expired. Session is invalid. This could be because the application was uninstalled after the session was created.","type":"OAuthException","code":100}}

之后我被指向Started GET "/accounts/auth/facebook/callback?code=XXX,但不是在那个动作 ( facebook) 中处理,而是被发送到Users::OmniauthCallbacksController#failure.

但是,奇怪的是,当我看到我用我的 Facebook 帐户授权了哪些应用程序时,我的应用程序就在那里。并且下次我点击登录链接时,我立即获得授权(不要重定向到 FB),并通过我的facebook操作登录,没问题。

任何想法为什么会发生这种情况,或调试提示?他们将不胜感激。谢谢!

编辑:我的omniauth_callbacks_controller.rb

4

2 回答 2

4

事实证明,Facebook 没有工作。我今天早上登录很好,没有更改任何代码。壮观。

让这成为你的一个教训:有时,不是你。

于 2012-12-24T16:28:14.323 回答
0

可能与此有关:https ://developers.facebook.com/bugs/419168608133421?browse=search_50c9f80c2dcb35786620246

我必须说,我们使用 Devise 和 Facebook oAuth,而我从未在我们的应用程序中看到过这种情况。您可以发布您的 OmniauthCallbacksController 的代码片段吗?

于 2012-12-21T21:47:22.877 回答