在Facebook上授权应用程序后"Invalid Credentials"(使用Devise,omniauth :facebook)



我遵循了设计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操作登录,没有问题。

有什么想法为什么会发生这种情况或调试技巧?他们将不胜感激。谢谢!

编辑:我的omniaut_callbacks_controller.rb

事实证明Facebook不起作用。我今天早上没有更改代码。壮观。

让这对您来说是一个教训:有时候,不是您。

可能与此相关:https://developers.facebook.com/bugs/419168608133421?

我必须说,我们使用Deaise和Facebook Oauth,并且我从未在我们的应用中看到过。您可以发布您的OmniautCallbackScontroller的代码段吗?

最新更新