У меня есть приложение Django Rest Framework. аутентификация выполняется с помощью метода авторизации:Как ограничить просмотр аутентифицированного пользователя в Django Rest Framework
def login(self, request):
user = find_my_user(request)
user.backend = 'django.contrib.auth.backends.ModelBackend'
login(request, user)
return Response({"status": "ok"})
Authentication работает плавник.
У меня есть ViewSet, имеющий list_route(), которому нужен аутентифицированный пользователь, который будет использоваться. Вот код:
class CommonView(viewsets.ViewSet):
@list_route()
@authentication_classes(SessionAuthentication)
@permission_classes(IsAuthenticated)
def connected(self, request):
return Response({"status": "ok"})
Даже если пользователь не прошел проверку подлинности (нет куки сессии), действие выполняется.
В работе вокруг, я выполнил это так:
class CommonView(viewsets.ViewSet):
@list_route()
def connected(self, request):
if request.user.is_authenticated():
return Response({"status": "ok"})
else:
return Response({"status": "ko", "message": "Unauthenticated"})
Но я чувствую, что это может быть чище, какие-либо идеи?
Действительно, однако он будет применяться ко всем методам внутри представления. Мне просто нужно применить его к некоторым из них, – Blusky