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

1、导入 auth 模块

# 认证模块
from django.contrib import auth

# 对应数据库用户表,可以继承扩展
from django.contrib.auth.models import User

  

2、创建用户对象

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

  

3、用户认证

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

  

4、登录退出

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 @ 2023-05-28 23:27  映辉  阅读(42)  评论(0)    收藏  举报