docs
This commit is contained in:
@@ -59,4 +59,9 @@ class LoginResponseSerializer(serializers.Serializer):
|
||||
message = serializers.CharField()
|
||||
access = serializers.CharField()
|
||||
refresh = serializers.CharField()
|
||||
user = UserResponseSerializer()
|
||||
user = UserResponseSerializer()
|
||||
|
||||
|
||||
class LogoutResponseSerializer(serializers.Serializer):
|
||||
"""Сериализатор для ответа при выходе из системы"""
|
||||
message = serializers.CharField()
|
||||
@@ -11,7 +11,8 @@ from django.contrib.auth.models import User
|
||||
from .serializers import (
|
||||
UserResponseSerializer,
|
||||
LoginRequestSerializer,
|
||||
LoginResponseSerializer
|
||||
LoginResponseSerializer,
|
||||
LogoutResponseSerializer
|
||||
)
|
||||
|
||||
from api.utils.cookies import AuthBaseViewSet
|
||||
@@ -138,30 +139,35 @@ class LoginViewSet(AuthBaseViewSet):
|
||||
)
|
||||
|
||||
class LogoutView(APIView):
|
||||
"""ViewSet для выхода из системы"""
|
||||
"""View для выхода из системы"""
|
||||
serializer_class = LogoutResponseSerializer
|
||||
|
||||
@extend_schema(
|
||||
summary="Выход из системы",
|
||||
description="Эндпоинт для выхода из системы, очищает все токены и куки",
|
||||
description="Эндпоинт для выхода из системы. Очищает JWT токены и сессионные куки.",
|
||||
responses={
|
||||
200: OpenApiResponse(
|
||||
description="Успешный выход",
|
||||
response=OpenApiTypes.OBJECT,
|
||||
response=LogoutResponseSerializer,
|
||||
description="Успешный выход из системы",
|
||||
examples=[
|
||||
OpenApiExample(
|
||||
'Успешный выход',
|
||||
value={"message": "Logged out"}
|
||||
value={"message": "Успешный выход из системы"}
|
||||
)
|
||||
]
|
||||
)
|
||||
}
|
||||
},
|
||||
tags=['Аутентификация']
|
||||
)
|
||||
def post(self, request):
|
||||
response = Response({'message': 'Logged out'}, status=status.HTTP_200_OK)
|
||||
"""Выход из системы с очисткой всех токенов и куки"""
|
||||
response = Response(
|
||||
{'message': 'Успешный выход из системы'},
|
||||
status=status.HTTP_200_OK
|
||||
)
|
||||
|
||||
# чистим куки и sessionID
|
||||
response.delete_cookie('access_token')
|
||||
response.delete_cookie('refresh_token')
|
||||
response.delete_cookie('sessionid')
|
||||
response.delete_cookie('sessionid')
|
||||
|
||||
return response
|
||||
Reference in New Issue
Block a user