自定义认证

如果用普通的认证,直接就用login,logout,authenticate就可以了

用户认证的方式在django.contrb.auth.backend里面的ModelBackend类当中
需要在settings.py里面进行设置
AUTHENTICATION_BACKENDS =(
    'app.模块.类' ,
)
authenticate方法就可以实现自定义认证了,login,logout是request与user对象之间的关系
from django.contrib.auth import login, logout, authenticate

user =
authenticate(username=username,password=password)
authenticate如果认证成功会返回一个user对象,不成功会返回None值
from django.contrib.auth.backends import ModelBackend      authenticate是这个ModelBackend模块里面的方法
authenticate是验证帐号密码所以可以通过继承重写验证帐号密码方式 

login(request, user)
根据传入的request对象和user对象进行登录
request.user在这个方法当中生成的
login产生了很多东西,很多session

logout(request)
传入request就可以进行注销

Q(email=username) | Q(phone=username)
Q是短函数 写一段语句  
user.check_password  验证密码

from django.db.models import Q

通过这种继承的方式重写了认证方式需要在settings.py里面进行设置,如同自定义User一般
AUTHENTICATION_BACKENDS = (
            'app.model.类名',
)

自定义User类,自定义认证方式,通过继承复写之后再在settings.py里面进行指定自定的方法加载     











原文地址:https://www.cnblogs.com/wuqingzangyue/p/5749593.html