使用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。