我成功地使用Django Social Auth来登录Facebook用户。我正在尝试实现Google OAuth2。我已经采取了我所知道的所有步骤来集成它,但是即使我点击Allow access
,我也会得到一个AuthCanceled at /complete/google-oauth2/
异常。下面是我集成它所做的事情:
- 进入Google API控制台,注册我的应用程序,并获得我的客户端ID和客户端密码。
- 我添加了正确的返回网址
http://mysite/complete/google-oauth2
,在我这样做之前,我得到了“未经授权的重定向网址”从谷歌。 - 在我的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登录工作,我能够显示窗口,查看我的应用程序名称在谷歌授权窗口等。
我做错了什么?我如何修复/调试AuthCancelled异常?
3条答案
按热度按时间pgpifvop1#
该问题似乎是由Google的一种奇怪行为引起的:当我最初创建我的客户ID时,google给了我这个客户ID:
193271111225.apps.googleusercontent.com
。在与库作者交谈后,他告诉我他的ID要长得多,所以我用完全相同的设置创建了一个新的客户端ID。生成的新ID是193271111225-cvltnldi4hh5lmo784v2ir451b3rij7e.apps.googleusercontent.com
,使用它可以工作。两个ID在控制台中看起来是一样的,但只有后者可以工作。mbjcgjjk2#
使用SocialAuthExceptionMiddleware中间件正确处理social_auth异常
iswrvxsc3#
当我尝试使用
social-auth-app-django
库进行社会身份验证时,我也遇到了同样的错误。两个愚蠢的错误导致了这个错误。
1.未在Web应用程序的客户端ID中定义重定向授权重定向URI。(将其设置为http://localhost:8000/social-auth/complete/google-oauth2/)
因此,如果您收到相同的错误,请确保定义了重定向授权URI并检查拼写。