from django.contrib.auth.backends import ModelBackend from django.core.exceptions import MultipleObjectsReturned from .models import CustomUser class PhoneAuthenticationBackend(ModelBackend): def authenticate(self, request, phone=None, password=None, **kwargs): try: user = CustomUser.objects.get(phone=phone) if user.check_password(password): return user except CustomUser.DoesNotExist: return None except MultipleObjectsReturned: return None