Социальная аутентификация из drf_social_oauth2 : ошибка с django.urls.exceptions.NoReverseMatch: 'social' не является зарегистрированным пространством имен
Я разрабатываю новое приложение со стеком Angular и Django Rest Framework.
В моем API я использую drf_social_oauth2 для социальной аутентификации. Обмен токенами проходит успешно. Токены и пользователи созданы в базе данных.
Однако аутентификация для других представлений проходит неудачно.
Я использую этот тип authentication_classes в своих других представлениях :
from rest_framework import authentication
from drf_social_oauth2.authentication import SocialAuthentication
class UsersListApiView(APIView):
authentication_classes = [authentication.TokenAuthentication, SocialAuthentication]
Мои URL:
path('auth/login/', obtain_auth_token, name='login'),
path('auth/', include('dj_rest_auth.urls')),
path('auth/registration/', include('dj_rest_auth.registration.urls')),
re_path(r'^auth/', include('drf_social_oauth2.urls', namespace='drf')),
Это часть моего файла settings.py :
AUTHENTICATION_BACKENDS = [
# Google OAuth2
'social_core.backends.google.GoogleOAuth2',
# Facebook OAuth2
'social_core.backends.facebook.FacebookAppOAuth2',
'social_core.backends.facebook.FacebookOAuth2',
# drf_social_oauth2
'drf_social_oauth2.backends.DjangoOAuth2',
# DJango
'django.contrib.auth.backends.ModelBackend',
]
# Facebook configuration
SOCIAL_AUTH_FACEBOOK_KEY = ''
SOCIAL_AUTH_FACEBOOK_SECRET = ''
# Define SOCIAL_AUTH_FACEBOOK_SCOPE to get extra permissions from Facebook.
# Email is not sent by default, to get it, you must request the email permission.
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id, name, email'
}
# Google configuration
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = ""
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = ""
# Define SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE to get extra permissions from Google.
SOCIAL_AUTH_GOOGLE_OAUTH2_SCOPE = [
'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile',
]
REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS':'rest_framework.schemas.coreapi.AutoSchema',
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.SessionAuthentication',
'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
'drf_social_oauth2.authentication.SocialAuthentication',
'rest_framework.authentication.TokenAuthentication',
],
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
}
SITE_ID = 2
Когда я вызываю представление с классом SocialAuthentication и носителем авторизации, который я получил из URL convert-token (как Authorization: Bearer facebook <token>
), у меня возникает ошибка такого типа :
django.urls.exceptions.NoReverseMatch: 'social' is not a registered namespace
Так, я не понимаю, почему я имею этот тип ошибки, только на URL, который я вызываю с этим типом Bearer.
Спасибо