返回介绍

概览

发布于 2019-11-13 06:14:53 字数 6289 浏览 974 评论 0 收藏 0

Django从开始就带有一个用户认证系统。它处理用户账号、组、权限以及基于cookie的用户会话。本节文档解释默认的实现如何直接使用,以及如何扩展和定制它以适合你项目的需要。

概览

Django认证系统同时处理认证和授权。简单地讲,认证验证一个用户是它们声称的那个人,授权决定一个认证通过的用户允许做什么。这里的词语认证同时指代这两项任务。

认证系统包含:

  • 用户
  • 权限:二元(是/否)标志指示一个用户是否可以做一个特定的任务。
  • 组:对多个用户运用标签和权限的一种通用的方式。
  • 一个可配置的密码哈希系统
  • 用于登录用户或限制内容的表单和视图
  • 一个可插拔的后台系统

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_CLASSES设置中的两个选项:

  3. SessionMiddleware管理请求之间的会话。

  4. AuthenticationMiddleware使用会话将用户与请求管理起来。

有了这些设置,运行manage.py migrate命令将为认证相关的模型创建必要的数据库表并为你的应用中定义的任意模型创建权限。

使用

使用Django默认的实现

默认实现的API参考

自定义Users和认证

Django中的密码管理

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文