1

我成功地使用 Django Social Auth 通过 Facebook 登录用户。我正在尝试实现 Google OAuth2。我已经采取了我所知道的所有步骤来集成它,但AuthCanceled at /complete/google-oauth2/即使我单击 ,我也会遇到异常Allow access。这是我为集成它所做的:

  • 前往 Google API 控制台,注册我的应用程序并获得我的客户端 ID 和客户端密码。
  • 我添加了正确的返回 url http://mysite/complete/google-oauth2,在我这样做之前,我从 Google 获得了“未经授权的重定向 url”。
  • 在我的 settings.py 我有

    GOOGLE_OAUTH2_CLIENT_ID = '*****'
    GOOGLE_OAUTH2_CLIENT_SECRET = '*****'
    
    AUTHENTICATION_BACKENDS = (
        'social_auth.backends.google.GoogleOAuth2Backend',
        'social_auth.backends.facebook.FacebookBackend',
        'django.contrib.auth.backends.ModelBackend',
    )
    
  • 我想我有其他相关设置正确,因为 Facebook 登录有效,我可以显示窗口,在 Google 授权窗口中查看我的应用程序名称等。

我做错了什么?如何修复/调试 AuthCancelled 异常?

4

2 回答 2

3

这个问题似乎是由一个奇怪的谷歌行为引起的:当我最初创建我的客户端 ID 时,谷歌给了我这个客户端 ID 193271111225.apps.googleusercontent.com:. 在与图书馆作者交谈后,他告诉我他的 ID 更长,所以我创建了一个具有完全相同设置的新客户端 ID。生成的新 ID 可以193271111225-cvltnldi4hh5lmo784v2ir451b3rij7e.apps.googleusercontent.com正常工作。两个 ID 在控制台中看起来相同,但只有后者有效。

于 2013-04-19T07:26:08.407 回答
1

使用SocialAuthExceptionMiddleware中间件正确处理 social_auth 异常

MIDDLEWARE_CLASSES = (
    ...,
    'social_auth.middleware.SocialAuthExceptionMiddleware'
)
于 2013-07-16T14:28:42.750 回答