Django RF - проблема с просмотром API входа / выхода - PullRequest
0 голосов
/ 21 июня 2020

У меня проблема с входом / выходом из системы с помощью API.
Я создал два представления:
class SignIn(APIView):
    def post(self, request):
        user = authenticate(
            request,
            username=request.data['username'],
            password=request.data['password']
        )
        if user is not None:
            login(request, user)
            return Response(
                {'username': request.user.username, 'logged': True},
                status=status.HTTP_202_ACCEPTED
            )
        else:
            if User.objects.filter(username=request.data['username']).exists():
                return Response(
                    {'init_data_problem': 'wrong_password', 'logged': False},
                    status=status.HTTP_409_CONFLICT
                )
            else:
                return Response(
                    {'init_data_problem': 'user_not_exists', 'logged': False},
                    status=status.HTTP_404_NOT_FOUND
                )


class SignOut(APIView):
    def get(self, request):
        if request.user.is_authenticated:
            logout(request)
            return Response(
                {'logged_out': True},
                status=status.HTTP_200_OK
            )
        else:
            return Response(
                {'logged_out': False},
                status=status.HTTP_400_BAD_REQUEST
            )

Логин работает правильно:

http POST http://127.0.0.1:8000/signin username="MyUser" password="mypassword"

Response:
{
    "logged": true,
    "username": "MyUser"
}

Но с использованием выхода сразу после этого выдает ответ:

http http://127.0.0.1:8000/signout

Response:
{
    "logged_out": false
}

Почему я получаю положительный ответ о входе в систему, но пользователь не вошел в систему «постоянно»? Что я делаю не так?

...