Django的认证系统

Django自带的用户认证

我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册,用户登录,用户认证,注销,修改密码等功能,这还真是个麻烦的事情呢。

Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点。它内置了强大的用户认证系统,身份验证,它默认使用auth_user表来存储用户数据。

auth模块

fromdjango。contribimportauth

认证中提供了许多实用方法:

提供了用户认证功能,即验证用户名以及密码是否正确,一般需要用户名、密码两个关键字参数。

如果认证成功(用户名和密码正确有效),便会返回一个用户对象。

验证()会在该用户对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的。

用法:

用户=验证(用户名=笆褂谩?密码=thepassword)

该函数接受一个HttpRequest对象,以及一个经过认证的用户对象。

该函数实现一个用户登录的功能。它本质上会在后端为该用户生成相关的会话数据。

用法:


 Django的认证系统”> <br/> </p> <p> </p> <p>只要使用登录(请求,user_obj)之后,request.user就能拿到当前登录的用户对象,否则请求。用户得到的是一个匿名用户对象(AnonymousUser对象)。</p> <p>详细原理请查看AuthenticationMiddleware中间件源码。</p> <p> </p> <p>该函数接受一个HttpRequest对象,无返回值。</p> <p>当调用该函数时,当前请求的会话信息会全部清除。该用户即使没有登录,使用该函数也不会报错。</p> <p>用法:</p> <p> <br/> </p> <p> <img src=

 Django的认证系统”> <br/> </p> <p> </p> <p> user_obj能够拿到认证所用用户表的数据属性,比如用户名、密码等。</p> <p>其他常用属性含义如下:</p> <p> is_staff:用户是否拥有网站的管理权限。</p> <p> is_active:是否允许用户登录,设置为假,可以在不删除用户的前提下禁止用户登录。</p> <p> </p> <p>这内置的认证系统这么好用,但是auth_user表字段都是固定的那几个,我在项目中没法拿来直接使用啊! <h2 class=Django的认证系统