django添加用户手机号认证登录

django添加用户手机号认证登录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
view.py
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
from django.contrib.auth import get_user_model
User = get_user_model()
class CustomBackend(ModelBackend):
def authenticate(self, username=None, password=None, **kwargs):
try:
# 不希望用户存在两个,get只能有一个。两个是get失败的一种原因 Q为使用并集查询
# 并集查询
user = User.objects.get(Q(username=username) | Q(mobile=username))
if user.check_password(password):
return user
except Exception as e:
return None
settings.py
AUTHENTICATION_BACKENDS = (
# 自定义用户验证
'users.views.CustomBackend',)
坚持原创技术分享,您的支持将鼓励我继续创作!