Building a Django backend for email-only sign-in

Implementing Django email-only authentication. My custom backend fails due to missing ‘get_user’. Below is an alternative implementation:

from django.contrib.auth import get_user_model

class EmailOnlyBackend:
    def login_user(self, email_input=None):
        User = get_user_model()
        try:
            return User.objects.get(email=email_input)
        except User.DoesNotExist:
            return None
    
    def fetch_user(self, user_id):
        User = get_user_model()
        try:
            return User.objects.get(pk=user_id)
        except User.DoesNotExist:
            return None
AUTH_BACKENDS = [
    'myapp.custom_auth.EmailOnlyBackend',
    'django.contrib.auth.backends.ModelBackend',
]
<form method="post" action="/process/">
  {% csrf_token %}
  <input type="text" name="user_email" placeholder="Email">
  <button type="submit">Submit</button>
</form>
from django.shortcuts import redirect
from django.contrib.auth import authenticate, login

def process_login(request):
    email_val = request.POST.get('user_email', '')
    user_obj = authenticate(username=email_val)
    if user_obj and user_obj.is_active:
        login(request, user_obj)
    return redirect('home')

hey, interesting approach. im wondering if checking proper email normalization would avoid duplicates? alos, how d u feel about potential securty issues? any experiances with forged emails? would love to chat more about this!