码迷,mamicode.com
首页 > 其他好文 > 详细

DRF自定义用户认证

时间:2019-04-07 14:24:18      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:name   password   定义   exception   one   imp   mobile   pre   登录   

一、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
}

 

DRF自定义用户认证

标签:name   password   定义   exception   one   imp   mobile   pre   登录   

原文地址:https://www.cnblogs.com/mxsf/p/10665213.html

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