• DRF自定义用户认证


    一、settings中配置

    AUTHENTICATION_BACKENDS = (
        'users.views.CustomBackend',
    )

    二、users/views.py

    # users.views.py
    
    from django.contrib.auth.backends import ModelBackend
    from django.contrib.auth import get_user_model
    from django.db.models import Q
    
    User = get_user_model()
    
    class CustomBackend(ModelBackend):
        """
        自定义用户验证
        """
        def authenticate(self, username=None, password=None, **kwargs):
            try:
                #用户名和手机都能登录
                user = User.objects.get(
                    Q(username=username) | Q(mobile=username))
                if user.check_password(password):
                    return user
            except Exception as e:
                return None

    三、JWT有效时间设置

    settings中配置

    import datetime
    #有效期限
    JWT_AUTH = {
        'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7),    #也可以设置seconds=20
        'JWT_AUTH_HEADER_PREFIX': 'JWT',                       #JWT跟前端保持一致,比如“token”这里设置成JWT
    }
  • 相关阅读:
    List中的get(i)
    报空指针异常
    json数据请求
    springmvc中的字典表
    json的解析
    httpClient返回的数据类型,怎么弄
    java中webService
    红外遥控协议(NEC)
    很奇怪的GPIO地址
    emacs命令备忘
  • 原文地址:https://www.cnblogs.com/mxsf/p/10665213.html
Copyright © 2020-2023  润新知