使用python-social-auth的django社交认证错误

时间:2016-04-13 11:40:40

标签: python django python-social-auth

我正在关注此answer,这非常清楚且有用,我已经配置了所有设置,但在使用gmail登录后,我被重定向到localhost:8000/soc/complete/google-oauth2/?state=jAwzw... 。我收到此错误

HTTPError at /soc/complete/google-oauth2/
403 Client Error: Forbidden for url: https://www.googleapis.com/plus/v1/people/me?access_token=ya29..wwKoNcTfjGshqc8UYfdziBbgVtYP4bgBZ9ehrfsHJjfs-v6Cy2X3ULsdh_rJwbfApw&alt=json
Request Method: GET
Request URL:    http://localhost:8000/soc/complete/google-oauth2/?state=jAwzw3EhdvFdUCv2DFia8fN4n7tUic6u&code=4/nvOb3r-U-ZXrxFCT1dSKcTE2wR8MbxhonRWX60cP4-0&authuser=0&session_state=e8244f9ad9dec2b21c83e2b153a6e9595ccefac4..e292&prompt=consent
Django Version: 1.8.1
Exception Type: HTTPError
Exception Value:    
403 Client Error: Forbidden for url: https://www.googleapis.com/plus/v1/people/me?access_token=ya29..wwKoNcTfjGshqc8UYfdziBbgVtYP4bgBZ9ehrfsHJjfs-v6Cy2X3ULsdh_rJwbfApw&alt=json
Exception Location: /usr/local/lib/python2.7/dist-packages/requests/models.py in raise_for_status, line 840
Python Executable:  /usr/bin/python
Python Version: 2.7.6
Python Path:    
['/home/aditya/django/myapp/socialapp',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PILcompat',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/pymodules/python2.7',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
Server time:    Wed, 13 Apr 2016 11:33:21 +0000

我不确定 SOCIAL_AUTH_PIPELINE 设置,我刚刚复制了它们,就像

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
)

您能否解释一下这个问题以及 SOCIAL_AUTH_PIPELINE 的工作原理是什么?

2 个答案:

答案 0 :(得分:18)

问题已解决,只需启用Google+ API,感谢@ddalu5

答案 1 :(得分:0)

对于所有遇到相同问题的人,解决问题的一种替代方法是更新软件包。我在 v1 中遇到了问题,启用 Google+ 并不能解决问题,但升级到 v4 可以。