auth模块

auth模块是对登录认证方法的一种封装,本身就是一个对象,可以获取用户的详细信息,有了auth模块可以验证登录信息是否存在数据库中,还可以检验用户是否已经登录,校验密码等

auth方法

  • 导入
from django.contrib import auth

1、authenticate()

提供了用户认证,验证用户名以及密码是否正确,如果信息有效会返回一个user对象

user =authenticate(username='',password='')

2、login(HttpRequest,user)

接受一个HttpRequest对象,以及一个认证了User对象,此函数使用django的session框架给某个已认证的用户附加上session,id等信息

from django.contrib.auth import authenticate,login
def my_view(request):
username=request.POST['username']
password=request.POST['password']
user=authenticate(username=username,password=password)
if user is not None:
login(request,user)
else:
pass

3、logout(request)注销用户

接受一个HttpRequest对象,无返回值,调用该函数时,当前请求的session信息会全部清除

from django.contrib.auth import logout
def logout_view(request):
logout(request)

4、user对象的is_authenticated()

用户登录后才能访问某些页面

from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
pass def my_view(request):
if not user.is_authenticated():
pass

user对象

属性:username,password,其中password用哈希算法保存到数据库

is_staff:用户是否拥有网站的管理权限

is_active:是否允许用户登录,设置为‘False’,可以不用删除用户来禁止用户登录

1、create_user创建用户

from django.contrib.auth.models import User
user=User.object.create_user(username='',password='',email='')

2、check_password(password)校验旧密码

user=User.objects.get(username='')
if user.check_password(password):
pass

3、set_password()修改密码

user=User.objects.get(username='')
user.set_password(password='')
user.save

继承auth方法

1、导入一个AbstractUser类,并且写一个自定义类,继承AbstractUser

from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
pass

2、在setting.py文件里配置

AUTH_USER_MODEL=''

最新文章

  1. 细说websocket - php篇
  2. IIS短文件名暴力枚举漏洞利用脚本
  3. 【leetcode❤python】 168. Excel Sheet Column Title
  4. ZYNQ 的PS GEM DMA存在缺陷
  5. javax.transaction.xa.XAException: java.sql.SQLException: 无法创建 XA 控制连接。错误: 未能找到存储过程 'master..xp_sqljdbc_xa_init'
  6. JSP 用户表单的简单实现
  7. MSSQL FOR MXL PATH 运用(转载)
  8. 转载:SMS软件FESWMS模型使用体会
  9. Java实现多线程邮件发送
  10. Java基础(二)
  11. 20160406javaweb 之JDBC简单案例
  12. SQL Server两种分页的存储过程介绍
  13. ural 1353. Milliard Vasya's Function(dp)
  14. NlpirParser智能挖掘平台词性标注新算法
  15. zabbix3.2_yum官方文档centos 7版
  16. GreenDao 兼容升级,保留旧数据的---全方面解决方案
  17. iOS的settings bundle中开关按钮(Toggle Switch)取不到值的问题
  18. hdu 2899 Strange fuction 模拟退火
  19. Ubuntu 下重启网络的方法
  20. swagger2 如何匹配多个controller

热门文章

  1. 手写mybatis框架笔记
  2. 【14】Softmax回归
  3. openlayers显示区域
  4. 统一身份认证服务IdentityServer4实践
  5. 基于EFCore3.0+Dapper 封装Repository
  6. python笔记06
  7. Network Initialization: Fan-in and Fan-out
  8. 倍加福r2000激光驱动安装及使用
  9. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.7)Standard Vendor Specific Command Format
  10. MariaDB Windows 安装