Django官方文档翻译——Django中的用户身份验证(User authentication in Django)

原文地址:https://docs.djangoproject.com/en/3.0/topics/auth/

Django中的用户权限验证

Django本身自带了一个权限验证系统,它可以用来处理用户账户、组的权限认证和以cookie-based为基础的用户会话问题。这部分的文档解释了该系统的默认实现是如何做到开箱即用(work out of box)的,也会告诉你如何对它进行扩展与定制,以达到让他适合你项目需求的目标。


概述

Django的权限认证系统同时处理身份的验证和授权的问题。简单来说,身份验证用来验证用户的身份(他是谁),然后授权决定一个通过身份验证的用户能够做什么(他能做什么),而这里使用到的身份验证这个术语指代的便是这两个东西

认证系统包括:

  • 用户账户

  • 权限认证:用一个二进制标志来指示一个用户是否能够执行某个特定任务

  • 组:将标签和权限许可用于多个用户以实现方便管理的一个方法

  • 一个可配置的密码散列系统

  • 用于登陆用户或内容进行限制的表单或视图工具

  • 可拔插的后端系统

Django的权限验证系统的设计目标是有非常高的通用性,而不是提供web权限验证系统中常见的一些特性。因为这些常见的问题的解决方案已经被一些第三方库实现。

  • 密码强度检查
  • 登陆请求超量限制

  • 针对第三方的权限验证(如OAuth)

  • 对象级权限

安装

在Django中,权限验证系统被绑定为django.contrib模块,通过import django.contrib.auth引入,在默认情况下,该系统的所需要的配置已经由django-admin startproject setting.py生成的setting.py集成,并在你的INSTALLED_APPS中对两个事项进行了设置:

  1. 'django.contrib.auth'包含身份验证框架的核心,以及它的默认模型
  2. 'django.contrib.contenttypes'是Django的内容类型系统,它可以将你的模型与权限相关联

并且这些事项在你的中间件中也有设置:

  1. SessionMiddleware管理跨请求的会话

  2. AuthernticationMiddleware使用会话将用户与请求关联起来

有了这些设置,运行manage.py migrate这一命令为与auth相关的模型创建必要的数据库表,并为安装的应用程序中定义的任何模型创建权限

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值