Как использовать 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
}