zoukankan      html  css  js  c++  java
  • Django 多账号登录

    Django 多账号登录

    顾名思义用户既可以用用户名登录,也可以用电话号登录,如果有别的,也可以拓展

    django可以自定义登录验证方法,只需要继承默认认证类,然后重写对应方法。之后在配置文件中指定一下就可以。

    新建自定义认证类:

    from django.contrib.auth.backends import ModelBackend
    import re
    from users.models import User
    
    class MeiduoModelBackend(ModelBackend):
        def authenticate(self, request, username=None, password=None, **kwargs):
            # username接收的数据,既可能是用户名也可能是手机号
            try:
                if re.match('^1[3-9]\d{9}$', username):
                    # 手机号
                    user = User.objects.get(mobile=username)
                else:
                    user = User.objects.get(username=username)
            except:
                return None
            else:
                # 验证密码
                if user.check_password(password):
                    return user
                else:
                    return None
    

    在配置文件中指定使用自己的认证类:

    # 自定义认证类型
    AUTHENTICATION_BACKENDS = ['meiduo.utils.auth_backends.MeiduoModelBackend']
    

    现在可以用用户名和电话登录

    源码

  • 相关阅读:
    图的邻接链表实现(c)
    图的邻接矩阵实现(c)
    好文
    第13章 红黑树
    函数 setjmp, longjmp, sigsetjmp, siglongjmp
    域名解析
    wget www.baidu.com执行流程分析
    信号处理篇
    第11章 散列表
    第10章,基本数据结构(栈,队列)
  • 原文地址:https://www.cnblogs.com/junsircoding/p/15665133.html
Copyright © 2011-2022 走看看