Skip to main content

Django中的用户身份验证

Django自带了一个用户认证系统。它处理用户帐户,组,权限和基于Cookie的用户会话。文档的这一部分说明了默认实现如何开箱即用,以及如何根据项目的需要使用 扩展和定制

概述

Django认证系统处理认证和授权。简而言之,认证验证用户是他们声称是谁,并且授权确定允许验证的用户做什么。这里,术语认证用于指代这两个任务。

认证系统包括:

  • 用户

  • 权限:二进制(是/否)标志,指示用户是否可以执行某个任务。

  • 组:对多个用户应用标签和权限的通用方式。

  • 可配置的密码散列系统

  • 用于登录用户或限制内容的表单和查看工具

  • 可插拔后端系统

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

  • 密码强度检查

  • 限制登录尝试

  • 针对第三方的身份验证(例如OAuth)

安装

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

  1. 'django.contrib.auth' 包含认证框架的核心及其默认模型。

  2. 'django.contrib.contenttypes' 是Django 内容类型系统,它允许将权限与您创建的模型相关联。

以及您的 MIDDLEWARE 设置中的以下项目:

  1. SessionMiddleware 跨请求管理 会话

  2. AuthenticationMiddleware 使用会话将用户与请求相关联。

配置这些设置后,运行命令 manage.py migrate 会为安装的应用程序中定义的任何模型创建必要的数据库表,以用于授权相关模型和权限。