Django Rest Framework аутентификация и пользовательская сессия
Я пытаюсь добавить аутентификацию в мое приложение django-react. На данный момент я могу входить/регистрировать пользователей и это работает нормально, но я хочу получать только те данные, которые связаны с пользователем, вошедшим в систему, то есть опубликованные или обновленные им. Сейчас я получаю все данные независимо от пользователя, который прошел аутентификацию. Я предполагаю, что мне нужно изменить это в моих представлениях, но как это сделать? Это один из моих классов
class ListView(viewsets.ModelViewSet):
serializer_class = ListSerializer
queryset = List.objects.all()
А на стороне frontend я получаю данные таким образом:
const getList = async () => {
try {
const response = await axiosInstance.get('/list/')
if(response){
setList(response.data)
}
}catch(error){
throw error;
}
}
Вы можете использовать Django Rest Framework для установки схемы аутентификации на основе каждого представления или каждого набора представлений. Использование представлений на основе класса APIView:
from rest_framework.authentication import SessionAuthentication, BasicAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class ExampleView(APIView):
authentication_classes = [SessionAuthentication, BasicAuthentication]
permission_classes = [IsAuthenticated]
def get(self, request, format=None):
content = {
'user': str(request.user), # `django.contrib.auth.User` instance.
'auth': str(request.auth), # None
}
return Response(content)
Не забудьте установить его:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
]
}
Читать больше здесь