Невозможно обработать логин нескольких пользователей - Django - PullRequest
0 голосов
/ 29 мая 2018

Я столкнулся с небольшой проблемой при попытке войти 2 пользователей в Django.Я использую функцию аутентификации по умолчанию и мой код, как показано ниже

class CustomAuthToken(ObtainAuthToken):
    def post(self, request, *args, **kwargs):
        data1 = request.data
        username = data1['username']
        password = data1['password']
        valid_user = authenticate(username=username, password=password)
        if valid_user is not None:
            login(request, valid_user)
            serializer = self.serializer_class(data=request.data,
                                            context={'request': request})
            serializer.is_valid(raise_exception=True)
            user = serializer.validated_data['user']
            token, created = Token.objects.get_or_create(user=user)
            return Response({'token': token.key, 'user_id': user.pk, 'email': user.email})
        else:
             print("invalid")
             return Response(status=status.HTTP_401_UNAUTHORIZED)

Мой первый логин успешно работает, и я получаю токен.Однако, если я пытаюсь войти в систему другого пользователя, я получаю ответ ниже в Почтальон

{
    "detail": "CSRF Failed: CSRF token missing or incorrect."
}

Похоже, я могу обрабатывать только один пользователь одновременно.Пожалуйста, помогите мне с этим

1 Ответ

0 голосов
/ 29 мая 2018

Когда вы вызываете свой API, в теле сообщения нет токена csrfmiddleware.Вы должны сделать представление CSRF освобожденным , когда запрос сделан через API.

Я бы посоветовал вам использовать Аутентификация токена вместо написания вашей собственной аутентификации, поскольку она безопаснее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...