Django从开始就带有一个用户认证系统。它处理用户账号、组、权限以及基于cookie的用户会话。本节文档解释默认的实现如何直接使用,以及如何扩展和定制它以适合你项目的需要。
Django认证系统同时处理认证和授权。简单地讲,认证验证一个用户是它们声称的那个人,授权决定一个认证通过的用户允许做什么。这里的词语认证同时指代这两项任务。
认证系统包含:
Django中的认证系统的目标是非常通用且不提供在web认证系统中某些常见的功能。某些常见问题的解决方法已经在第三方包中实现:
认证的支持作为Django的一个contrib模块,打包于django.contrib.auth
中。默认情况下,要求的配置已经包含在django-admin startproject
生成的settings.py
中,它们的组成包括INSTALLED_APPS
设置中的两个选项:
django.contrib.auth
‘包含认证框架的核心和默认的模型。django.contrib.contenttypes
‘是Django内容类型系统,它允许权限与你创建的模型关联。
和MIDDLEWARE_CLASSES
设置中的两个选项:SessionMiddleware
管理请求之间的会话。AuthenticationMiddleware
使用会话将用户与请求管理起来。有了这些设置,运行manage.py migrate
命令将为认证相关的模型创建必要的数据库表并为你的应用中定义的任意模型创建权限。
译者:Django 文档协作翻译小组,原文:Overview。 本文以 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。 Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。