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']
    

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

    源码

  • 相关阅读:
    有关TensorBoard一些小Tip和实例
    基于Word2Vec的影评挖掘
    CNN实战2:CIFAR-10数据集上的图像识别
    CNN实战1:实现模仿大师绘画
    delphi
    表格录入控件
    税控接口
    TStringGrid
    TStringGrid
    sqlserver
  • 原文地址:https://www.cnblogs.com/lulujunsir/p/auth.html
Copyright © 2011-2022 走看看