Django ImportError: модуль social_core.backends.google не определяет атрибут / класс GoogleOpenId.
Я клонировал свое рабочее приложение Django в дистрибутив Linux на основе Debian, я установил все зависимости, но при попытке войти в систему с помощью электронной почты и пароля или учетной записи Google возникает следующая ошибка:
ImportError: Module "social_core.backends.google" does not define a "GoogleOpenId" attribute/class
У меня есть следующие зависимости для аутентификации:
django-allauth==0.42.0
django-rest-auth==0.9.5
google-auth==1.27.0
oauthlib==3.1.0
requests-oauthlib==1.3.0
social-auth-app-django==3.1.0
social-auth-core==4.0.3
Он хорошо работал в Ubuntu и MacO, проблема появилась при клонировании этого дистрибутива на основе Debian. Google ничего не говорит об этой ошибке, и я не знаю, с чего начать поиск, единственное, что я обнаружил, это то, что мы используем его в качестве бэкэнда аутентификации:
AUTHENTICATION_BACKENDS = (
'social_core.backends.open_id.OpenIdAuth',
'social_core.backends.google.GoogleOpenId',
'django.contrib.auth.backends.ModelBackend'
)
2 ответа
Благодаря комментарию, объясняющему устаревание python-social-auth, Ive решил проблему, понизив версию
social-auth-core
пакет из версии
4.0.3
к
3.3.3
:
GoogleOpenID больше не используется, поэтому он был удален из python-social-auth. Но они, должно быть, забыли обновить документы.
https://github.com/python-social-auth/social-core/issues/472