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 друг с другом.

Дайте мне знать, как все прошло!

Вернуться на верх