Как использовать captcha для входа пользователя в систему в django rest framework?

Я хочу передавать капчу, когда пользователь хочет войти в свой аккаунт. Если он не вводит капчу правильно, выведите соответствующее сообщение Каптча должна быть числом и состоять из 4 цифр

views.py

class LoginApiView(generics.GenericAPIView):
    """login user"""
    serializer_class = LoginSerializer
    renderer_classes = [CustomizeJSONRenderer]
    def post(self, request):
        serializer = self.serializer_class(data=request.data)
        serializer.is_valid(raise_exception=True)
        return Response(serializer.data, status=status.HTTP_200_OK)

serializers.py

class LoginSerializer(serializers.ModelSerializer):
    username = serializers.CharField(max_length=255)
    password = serializers.CharField(max_length=68, min_length=8, write_only=True)
    email = serializers.EmailField(max_length=255, min_length=3, read_only=True)
    tokens = serializers.CharField(max_length=255, read_only=True)

    class Meta:
        model=User
        fields = ['username', 'password', 'email', 'tokens']

    def validate(self, attrs):
        username = attrs.get('username', '')
        password = attrs['password']
        user = authenticate(username=username, password=password)

        if not user:
            raise exceptions.AuthenticationFailed('Invalid credentials, try again')

        if not user.is_active:
            raise exceptions.AuthenticationFailed('Account disabled, contact admin')
        
        

        return {
            'username':user.username,
            'email': user.email,
            'tokens':user.tokens
        }
Вернуться на верх