Django-rest-framework с django OAuth 2.0 дает ошибку аутентификации
Я интегрировал django-rest-framework с django-oauth-toolkit. И это дает мне {"detail": "Authentication credentials were not provided."}
с неаутентифицированным apis.
Вот мой settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.contrib.rest_framework.OAuth2Authentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
views.py
from rest_framework.views import APIView
from rest_framework.response import Response
class SignUpView(APIView):
"""
Signup for the user.
"""
def get(self, request):
return Response({'result': True, 'message': 'User registered successfully.'})
urls.py
from django.urls import path
from myapp.views import SignUpView
urlpatterns = [
path('signup/', SignUpView.as_view()),
]
1 ответ
Решение
Для регистрации пользователя вам не требуется никакой аутентификации. Так что вам нужно написать свою точку зрения, как это.
class SignUpView(APIView):
"""
Signup for the user.
"""
authentication_classes = ()
permission_classes = ()
def get(self, request):
return Response({'result': True, 'message': 'User registered successfully.'})
Для всех остальных запросов вам нужно передать токен аутентификации в заголовок. В этом случае вам не нужно будет упоминать классы аутентификации и разрешений, так как будут использоваться ваши классы по умолчанию.