Django自带了一个用户认证系统。它处理用户账户、组、权限和基于cookie的用户会话。

概括

Django认证系统处理认证和授权。简单的说,认证是验证一个用户被声明为谁,授权是确定一个认证的用户允许做什么。

认证系统由下面的组成:

用户

权限:二进制标志,标明用户是否可以执行指定的任务

组:应用标签和权限给多个用户的通用方法

可配置的密码hash系统

用户登录的表单和视图工具或者限制的内容

可插入模块的后端系统

Django的认证系统只提供简单的方法,并不提供在web认证系统找到的一些特性。解决这些问题的方法是使用第三方插件:

密码强制性检查

登录尝试限制

针对第三方认证(例如OAuth)

安装

在django.contrib.auth中,认证支持已经捆绑作为一个Django的contib模块。默认情况下,所需配置已经包含在由django-admin startproject生成的setting.py中,在INSTALLED_APPS设置中列出的两个项目:

django.contrib.auth

包含认证框架的核心和默认的模块

django.contrib.contenttypes

是Django的内容类型系统,允许权限和你创建的模块想关联

在MIDDLEWARE_CLASSES设置中包括这些项目:

SessionMiddlemare

通过请求管理会话

AuthenticationMiddleware

使用会话关联用户和请求

SessionAuthenticationMiddleware

密码更改后,用户退出用户其它的会话

有了这些设置,运行manage.pymigrate为认证相关的model和权限创建必要的数据库表。




由于个人技术所限有不足之处还请各位指出。可以通过如下方式联系到笔者:

Linux运维开发群 298324302

北京linux运维求职招聘 153677549