http错误403(禁止),Django和python-social-auth通过OAuth2连接到Google



使用python-social-auth,在接受来自google的访问后,我得到403: Forbiden错误消息

编辑:我最近(2017)有同样的错误,但在一个新的消息:401 Client Error: Unauthorized for url: https://accounts.google.com/o/oauth2/token

这个答案已经过时了,因为Google+ API在3/7/19被弃用

您需要将Google+ API添加到Google Developer Console(在APIs下)上启用的api列表中

注意:如果您想看到真实的错误消息,请使用回溯查看response变量(response.text)的内容。我使用werkzeug (django-extensions + python manage.py runserver_plus)

谢谢。我通过艺术和逻辑使用这个python-social-auth教程,但无法通过/complete/Google -oauth2/403: Forbidden HTTPError,直到启用Google+ API如上并等待几分钟让Google启用它

此外,我必须将模板放在模板目录中并设置

setting .py. TEMPLATE_DIRS = ('/path/to/psa_test/thirdauth/templates/',)

希望这对沿途的人有所帮助。总而言之,我花了6个小时才算出来。还不错,我很高兴。

对于我来说,我使用的是完整的uri作用域,这是从2014年9月1日起被Google弃用的,这在python-social-auth文档中有提到这里

http://psa.matiasaguirre.net/docs/backends/google.html google-oauth2

Google将从2014年9月1日起弃用全url作用域,转而支持Google+ API和最近引入的更短的作用域名称。但是python-social-auth已经在v0.1.24发布的e3525187中引入了作用域更改。

但是,如果您不想启用Google+ API,并希望继续使用完整的uri旧范围,您需要遵循同一链接中提到的步骤:

# Google OAuth2 (google-oauth2)
SOCIAL_AUTH_GOOGLE_OAUTH2_IGNORE_DEFAULT_SCOPE = True
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile'
]
# Google+ SignIn (google-plus)
SOCIAL_AUTH_GOOGLE_PLUS_IGNORE_DEFAULT_SCOPE = True
SOCIAL_AUTH_GOOGLE_PLUS_SCOPE = [
'https://www.googleapis.com/auth/plus.login',
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile'
]
SOCIAL_AUTH_GOOGLE_OAUTH2_USE_DEPRECATED_API = True
SOCIAL_AUTH_GOOGLE_PLUS_USE_DEPRECATED_API = True

这对我来说很有效,因为我不想在这一点上启用Google+ API。

相关内容

  • 没有找到相关文章

最新更新