Django 中的用户身份验证 — Django 文档

来自菜鸟教程
Django/docs/3.2.x/topics/auth/index
跳转至:导航、​搜索

Django 中的用户身份验证


Django 带有一个用户认证系统。 它处理用户帐户、组、权限和基于 cookie 的用户会话。 文档的这一部分解释了默认实现如何开箱即用,以及如何扩展和自定义它以满足您的项目需求。

概览

Django 身份验证系统处理身份验证和授权。 简而言之,身份验证验证用户的身份,而授权确定允许经过身份验证的用户做什么。 这里术语身份验证用于指代这两个任务。

认证系统包括:

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

Django 中的身份验证系统旨在非常通用,并且不提供 Web 身份验证系统中常见的一些功能。 其中一些常见问题的解决方案已在第三方软件包中实现:

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


安装

身份验证支持捆绑为 django.contrib.auth 中的 Django contrib 模块。 默认情况下,所需的配置已经包含在settings.py产生于 :djadmin:`django-admin startproject ` ,这些包含在您的列表中列出的两个项目 :设置:`INSTALLED_APPS` 环境:

  1. 'django.contrib.auth' 包含认证框架的核心及其默认模型。
  2. 'django.contrib.contenttypes' 是 Django 内容类型系统 ,它允许将权限与您创建的模型相关联。

以及 :setting:`MIDDLEWARE` 设置中的这些项目:

  1. SessionMiddleware 跨请求管理 sessions
  2. AuthenticationMiddleware 使用会话将用户与请求相关联。

设置好这些设置后,运行命令 manage.py migrate 将为身份验证相关模型创建必要的数据库表,并为您安装的应用程序中定义的任何模型创建权限。