From 7fe81c8d3ffc57fe7e739ddb59afa30b490b0875 Mon Sep 17 00:00:00 2001 From: peps7ac8w <249306157@qq.com> Date: Sun, 9 Nov 2025 21:42:52 +0800 Subject: [PATCH] ADD file via upload --- user_login_backend.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 user_login_backend.py diff --git a/user_login_backend.py b/user_login_backend.py new file mode 100644 index 0000000..f2daea2 --- /dev/null +++ b/user_login_backend.py @@ -0,0 +1,28 @@ +from django.contrib.auth import get_user_model +from django.contrib.auth.backends import ModelBackend + + +class EmailOrUsernameModelBackend(ModelBackend): + #lht: """ + #lht: 允许使用用户名或邮箱登录 + #lht: """ + + def authenticate(self, request, username=None, password=None, **kwargs): + #lht: 根据输入内容判断是邮箱还是用户名 + if '@' in username: + kwargs = {'email': username} + else: + kwargs = {'username': username} + try: + user = get_user_model().objects.get(**kwargs) + if user.check_password(password): + return user + except get_user_model().DoesNotExist: + return None + + def get_user(self, username): + #lht: 根据用户名获取用户对象 + try: + return get_user_model().objects.get(pk=username) + except get_user_model().DoesNotExist: + return None