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
друг с другом.
Дайте мне знать, как все прошло!