django自带的用户验证是验证username和password,如何自定义验证功能,让mobil也能作为账户名登录?

users.views.py
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
class CustomAuth(ModelBackend):
def authenticate(self, request, username=None, password=None, **kwargs):
try:
user=UserProfile.objects.get(Q(username=username)|Q(mobile=username))
if user.check_password(password):
return user
# 如果找不到用户,就返回none
except Exception as e:
return None

settings.py
AUTHENTICATION_BACKENDS=[
"apps.users.views.CustomAuth",
]

猜你喜欢

转载自www.cnblogs.com/jiangzongyou/p/12012395.html
今日推荐