簡體   English   中英

HTTPError 403(Forbidden),Django和python-social-auth通過OAuth2連接到Google

[英]HTTPError 403 (Forbidden) with Django and python-social-auth connecting to Google with OAuth2

使用python-social-auth ,我在接受谷歌訪問后收到403: Forbiden錯誤消息

編輯:我最近(2017)有相同的錯誤,但在一條新消息: 401 Client Error: Unauthorized for url: https://accounts.google.com/o/oauth2/token

此答案已過時,因為Google+ API已於2009年3月7日棄用

您需要將Google+ API添加到Google Developer Console上的已啟用API列表中(在APIs下)

注意:如果要查看真實的錯誤消息,請使用traceback查看response變量的內容( response.text )。 我使用werkzeug( django-extensions + python manage.py runserver_plus )。

還要感謝。 我正在通過藝術和邏輯使用這個python-social-auth教程 ,但無法在/ complete / google-oauth2 /上通過403:Forbidden HTTPError,直到啟用上述Google+ API 並等待Google啟用幾分鍾它

另外,我必須將模板放在模板目錄中,並在settings.py中設置TEMPLATE_DIRS = ('/path/to/psa_test/thirdauth/templates/',)

希望這有助於一路上的人。 總而言之,花了大約6個小時來搞清楚。 還不錯,我很高興。

對我來說,我使用的是2014年9月1日Google棄用的完整URI范圍,這在python-social-auth文檔中有所提及。

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

Google從2014年9月1日開始棄用全網址范圍,轉而使用Google+ API和最近推出的縮短范圍名稱。 但是python-social-auth已經在e3525187引入了范圍變化,該變化發布於v0.1.24。

但是,如果您因任何原因不想啟用Google+ API並希望繼續使用完整的舊范圍,則需要按照相同鏈接中提到的步驟操作:

# 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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM