Django用户认证组件 (auth模块)

1、导入 auth 模块

1
2
3
4
5
# 认证模块
from django.contrib import auth
 
# 对应数据库用户表,可以继承扩展
from django.contrib.auth.models import User

  

2、创建用户对象

1
2
3
create():创建一个普通用户,密码是明文的。
create_user():创建一个普通用户,密码是密文的。
create_superuser():创建一个超级用户,密码是密文的,要多传一个邮箱 email 参数。

  

3、用户认证

1
2
auth.authenticate(username,password)
# 将输入的密码转为密文去认证,认证成功返回用户对象,失败则返回None

  

4、登录退出

1
2
3
4
5
from django.contrib import auth
 
auth.login()      # 该函数接受一个HttpRequest对象,以及一个认证了的User对象。此函数使用django的session框架给某个已认证的用户附加上session id等信息。
 
auth.logout()     # 该函数接受一个HttpRequest对象,无返回值。当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。

  

5、request.user

 

Django有一个默认中间件,叫做AuthenticationMiddleware,每次请求进来都会去session中一个userid,取不到的话,赋值request.user = AnonymousUser() , 一个匿名用户对象。

 

当用户组件auth.login一旦执行,将userid到session中后,再有请求进入Django,将注册的userid对应的user对象赋值给request.user,即再后面的任何视图函数中都可以从request.user中取到该客户端的登录对象。

 

 

 

posted @   映辉  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示