your programing

Django 및 python-social-auth가 OAuth2로 Google에 연결하는 경우 HTTPError 403 (금지됨)

lovepro 2020. 10. 16. 07:54
반응형

Django 및 python-social-auth가 OAuth2로 Google에 연결하는 경우 HTTPError 403 (금지됨)


사용하여 python-social-auth, 나는 얻을 403: Forbiden구글의 액세스를 허용 한 후 오류 메시지가

편집 : 최근 (2017)에 동일한 오류가 있지만 새 메시지가 표시되었습니다. 401 Client Error: Unauthorized for url: https://accounts.google.com/o/oauth2/token


Google+ API가 2019 년 3 월 7 일에 지원 중단되므로이 답변은 오래되었습니다.

Google+ APIGoogle 개발자 콘솔 (아래 APIs) 의 활성화 된 API 목록에을 추가해야합니다.

참고 : 실제 오류 메시지를 보려면 트레이스 백을 사용하여 response변수 ( response.text) 의 내용을 확인하십시오 . 나는 그것을 위해 werkzeug를 사용합니다 ( django-extensions+ python manage.py runserver_plus).


도 감사하다. python-social-auth 튜토리얼을 art 및 logic 으로 사용했지만 위와 같이 Google+ API 를 활성화하고 Google이 활성화 할 때까지 몇 분을 기다릴 때까지 / complete / google-oauth2 /에서 403 : Forbidden HTTPError를 지나칠 수 없습니다. 그것 .

또한 템플릿 디렉토리에 템플릿을 배치하고 TEMPLATE_DIRS = ('/path/to/psa_test/thirdauth/templates/',)settings.py에 설정해야했습니다.

이것이 누군가에게 도움이되기를 바랍니다. 대체로 알아내는 데 약 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와 최근에 도입 된 더 짧은 범위 이름을 위해 전체 URL 범위를 지원 중단합니다. 그러나 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를 활성화하고 싶지 않았기 때문에 이것은 저에게 효과적이었습니다.

참고 URL : https://stackoverflow.com/questions/24377506/httperror-403-forbidden-with-django-and-python-social-auth-connecting-to-googl

반응형