Как проверить, состоит ли запрос из идентификатора сессии и токена csref в cookie в Django rest framework?
мои классы аутентификации и разрешения rest_framework
"DEFAULT_PERMISSION_CLASSES": [
"rest_framework.permissions.IsAuthenticated",
"rest_framework.permissions.IsAdminUser",
"rest_framework.permissions.AllowAny",
],
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework_simplejwt.authentication.JWTAuthentication",
"rest_framework.authentication.SessionAuthentication",
"rest_framework.authentication.BasicAuthentication"
),
просмотр входа
class UserLoginView(generics.RetrieveAPIView):
"""
View for a user to login through 1FA.
The view provides a post request that accepts a email and password.
Returns a jwt token as a response to authenticated user.
"""
throttle_scope = "login"
permission_classes = (permissions.AllowAny,)
serializer_class = UserLoginSerializer
def post(self, request):
"""
POST request to login a user.
"""
#if session key is not present then create a session for the user
serializer = self.serializer_class(data=request.data)
serializer.is_valid(raise_exception=True)
if not request.session.session_key:
request.session.save()
return Response("logged in")
В моем представлении входа в систему, если учетные данные пользователя действительны, я создаю сессию пользователя, если она еще не создана. Для всех остальных запросов мне нужно убедиться, что пользователь имеет активную сессию, т.е. идентификатор сессии в cookie и токен csrf для обеспечения безопасности приложения, есть ли метод, предоставляемый rest framework для этого или мне нужно написать свои собственные классы разрешений для представлений