首页 > 其他 > 详细

自定义django用户认证类

时间:2021-06-27 17:21:53      阅读:27      评论:0      收藏:0      [点我收藏+]

编写认证类

from django.db.models import Q
from django.contrib.auth.backends import ModelBackend
from .models import User


class UserModelBackend(ModelBackend):
    def authenticate(self, request, username=None, password=None, **kwargs):
        filter_q = Q()
        filter_q.connector = OR
        # 用户名登录
        filter_q.children.append(
            Q((username, username))
        )
        # 手机号登录
        filter_q.children.append(
            Q((phone, username))
        )
        user = User.objects.filter(filter_q).first()
        if user and user.check_password(password) and self.user_can_authenticate(user):
            return user

 

修改配置文件指定认证类

#Django默认认证类
AUTHENTICATION_BACKENDS = [django.contrib.auth.backends.ModelBackend]

#我们自己指定的类
AUTHENTICATION_BACKENDS = [
    user.utils.LyUserModelBackend
]

 

自定义django用户认证类

原文:https://www.cnblogs.com/wtil/p/14940579.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!