码迷,mamicode.com
首页 > 移动开发 > 详细

django使用用户名或手机号码登录

时间:2018-11-16 13:24:30      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:exce   color   try   文件中   code   user   手机   use   style   

django有自己的认证系统,会自动根据用户名和密码进行验证。如果需要使用用户名或手机登录的话,需要重写django的认证后台,并且设置到配置文件中。

  • 重写django的认证后台

class UsernameMobileAuthBackend(ModelBackend):
    """用户名或手机登录"""

    def authenticate(self, request, username=None, password=None, **kwargs):
        """判断用户名(手机号码)和密码是否正确"""
        query_set = User.objects.filter( Q(username=username) | Q(mobile=username))
        try:
            if query_set.exists():
                user = query_set.get()
                if user.check_password(password):
                    return user
        except:
            return None
        return None

 

  • 设置到django配置文件

# 自定义,可以手机号码或用户名登录
AUTHENTICATION_BACKENDS = [user.utils.UsernameMobileAuthBackend]

 

django使用用户名或手机号码登录

标签:exce   color   try   文件中   code   user   手机   use   style   

原文地址:https://www.cnblogs.com/chichung/p/9968597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!