我遵循了设计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的代码段吗?