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
时间: 2024-11-05 02:32:01