Django 中的用户认证

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

概述

Django 认证系统同时处理身份验证和授权。简而言之,身份验证验证用户是否是他们声称的那个人,而授权确定已认证的用户被允许做什么。此处“身份验证”一词用于指代这两项任务。

auth 系统由以下部分组成:

  • 用户

  • 权限:指定用户是否可以执行特定任务的二元 (是/否) 标志。

  • 组:一种通用的方法,可以将标签和权限应用于多个用户。

  • 可配置的密码哈希系统

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

  • 可插拔的后端系统

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

  • 密码强度检查

  • 登录尝试的限制

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

  • 对象级权限

安装

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

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

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

以及您的MIDDLEWARE设置中的这些项:

  1. SessionMiddleware管理跨请求的会话

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

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

使用

使用 Django 的默认实现

默认实现的 API 参考

定制用户和身份验证

Django 中的密码管理

返回顶部