Django 自定义后台AUTH登陆方法

来源:互联网 发布:神经网络 python实现 编辑:程序博客网 时间:2024/05/21 09:46

settings.py 中加入重载变量

AUTHENTICATION_BACKENDS = (    'CustomBackend')

user.views.py

from django.contrib.auth.backends import ModelBackend
from .models import UserProfile

class CustomBackend(ModelBackend):    def authenticate(self, request, username=None, password=None, **kwargs):        try:            user = UserProfile.objects.get(username=username)            if user.check_password(password)                return user        except Exception as e:            return None



设置多种用户名登陆方式

from django.db.models import Q
class CustomBackend(ModelBackend):    def authenticate(self, request, username=None, password=None, **kwargs):        try:            user = UserProfile.objects.get(Q(username=username)|Q(email=username))            if user.check_password(password):                return user        except Exception as e:            return None