Аутентификация DRF_simplejwt не работает - PullRequest
0 голосов
/ 04 мая 2020

У меня есть user_auth с drf_simplejwt, но только суперпользователь может войти в систему, когда я пытаюсь войти в систему с обычным пользователем, это не работает

#serializers.py 
class TokenSerializer(serializers.Serializer):
username = serializers.CharField()
password = serializers.CharField()

def validate(self, data):
  user = authenticate(**data)
  if user and user.is_active:
      return user
  return serializers.ValidationError('Incorret cridentials')

вот ответ суперпользователя

 #views.py
from rest_framework_simplejwt.tokens import RefreshToken

class TokenView(generics.GenericAPIView):
serializer_class = TokenSerializer

def post(self, request, *args, **Kwargs):
    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    user = serializer.validated_data
    refresh = RefreshToken.for_user(user)
    return Response({
        'user': UserSerializer(user, context=self.get_serializer_context()).data,
        'token': {
            'refresh': str(refresh),
            'access': str(refresh.access_token)
        }
})

# ответ суперпользователя

 {
"user": {
    "username": "lio"
},
"token": {
    "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTU4ODY1ODM2NCwianRpIjoiN2NlOTljMmIyN2ZmNDBjNDg1MmUzN2FhZWRhNjY1MjciLCJ1c2VyX2lkIjo0fQ.6x2A2WSXdp0F12u09woAlVZAUJcYn3OZJx6tKmtWgJQ",
    "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTg4NTcyMjY0LCJqdGkiOiIyNDU2MzhjNGM0NGY0OWQwOGM1Yzg2ODc4ODQ0NzMxMiIsInVzZXJfaWQiOjR9.gRUWgFn7hearyC0_90BOYjKOp4IOVr18vvStjk_8ID0"
}

}

нормальный ответ пользователя

{"non_fields_error": "Incorret cridentials"}
...