У меня проблема с входом / выходом из системы с помощью 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
}
Почему я получаю положительный ответ о входе в систему, но пользователь не вошел в систему «постоянно»? Что я делаю не так?