Django中的用户认证

Django带有一个用户认证系统。 它处理用户帐户,组,权限和基于cookie的用户会话。 This section of the documentation explains how the default implementation works out of the box, as well as how to extend and customize it to suit your project’s needs.

概述¶ T0>

Django认证系统处理认证和授权。 简而言之,认证验证用户是他们自称的人,并且授权确定认证的用户被允许执行什么。 这里使用术语认证来指代这两个任务。

认证系统由以下部分组成:

  • 用户
  • 权限:指定用户是否可以执行特定任务的二进制(是/否)标志。
  • 组:应用标签和权限多个用户的通用方法。
  • 一个可配置的密码哈希系统
  • 表单和查看工具,用于登录用户或限制内容
  • 可插入的后端系统

Django中的认证系统是非常通用的,并不提供Web认证系统中常见的一些功能。 针对这些常见问题的解决方案已在第三方软件包中实施:

  • 密码强度检查
  • 限制登录尝试
  • 针对第三方的身份验证(例如,OAuth)

安装¶ T0>

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

  1. 'django.contrib.auth'包含身份验证框架的核心及其默认模型。
  2. 'django.contrib.contenttypes'是Django content type system,它允许权限与您创建的模型相关联。

以及这些项目在MIDDLEWARE设置中:

  1. SessionMiddleware manages sessions across requests.
  2. AuthenticationMiddleware associates users with requests using sessions.

使用这些设置,运行命令manage.py migrate为auth相关模型创建必要的数据库表,你安装的应用程序