Social_core.exceptions.MissingBackend: Отсутствует запись бэкенда «google-oauth2» в Django с Google OAuth2
Я работаю над интеграцией Google OAuth2 в мой проект Django REST Framework, используя django-rest-framework и social-django. Однако, когда я пытаюсь пройти аутентификацию, используя конечную точку:
GET /api/o/google-oauth2/?redirect_uri=http://localhost:3000/auth/google
Я получаю следующую ошибку:
social_core.exceptions.MissingBackend: Отсутствует запись бэкенда «google-oauth2»
.
Что может быть причиной ошибки Missing backend «google-oauth2» entry? Может быть, я упустил какую-то конфигурацию или проблема в версиях библиотек? Любая помощь или рекомендации будут оценены по достоинству.
Добавил следующее в файл settings.py:
AUTHENTICAION_BACKEN,DS =[
'django.contrib.auth.backends.ModelBackend',
'social_core.backends.google.GoogleOAuth2',
'social_core.backends.facebook.FacebookOAuth2',
]
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
'openid',
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile',
]
Перенаправление_uri (http://localhost:3000/auth/google) совпадает с зарегистрированным в Google API Console.
Похоже, что ошибка, с которой вы столкнулись (MissingBackend "google-oauth2" entry), обычно вызвана неправильной конфигурацией или опечаткой в настройках. Вот несколько вещей, которые вы можете проверить, чтобы решить проблему:
1. Типо в AUTHENTICATION_BACKENDS сеттинге:
В указанном вами имени настройки допущена опечатка: AUTHENTICAION_BACKEN,DS. Должно быть AUTHENTICATION_BACKENDS. Перепроверьте settings.py, чтобы убедиться, что используется правильная настройка.
Исправленная настройка:
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'social_core.backends.google.GoogleOAuth2',
'social_core.backends.facebook.FacebookOAuth2',
]
2. Проверьте SOCIAL_AUTH_GOOGLE_OAUTH2_KEY и SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET:
Убедитесь, что вы правильно настроили идентификатор и секрет клиента Google OAuth2 в вашем settings.py как:
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'your-client-id.apps.googleusercontent.com'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'your-client-secret'
Вам нужно заменить 'your-client-id' и 'your-client-secret' на фактические значения из консоли разработчика Google Developer Console.
3. Убедитесь, что social-auth-app-django установлен:
Убедитесь, что вы установили необходимый пакет social-auth-app-django:
pip install social-auth-app-django
4. Проверьте INSTALLED_APPS:
Убедитесь, что social_django включен в ваш INSTALLED_APPS:
INSTALLED_APPS = [
# your other apps
'social_django',
]
5. Проверьте URI перенаправления:
Убедитесь, что URI перенаправления (http://localhost:3000/auth/google) правильно настроен как в Google API Console, так и в вашем проекте Django. В некоторых случаях API Google может не принять перенаправление на localhost, поэтому убедитесь, что он указан в списке разрешенных URI перенаправления в Google Console.
Пример работы settings.py:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'social_core.backends.google.GoogleOAuth2',
'social_core.backends.facebook.FacebookOAuth2',
)
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'your-client-id.apps.googleusercontent.com'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = 'your-client-secret'
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
'openid',
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile',
]
INSTALLED_APPS = [
# your other apps
'social_django',
]
После внесения этих изменений повторите попытку и посмотрите, решится ли проблема. Если вы все еще сталкиваетесь с проблемами, проверьте, совместимы ли версии social-auth-app-django и social-core друг с другом.
Дайте мне знать, как все прошло!