当前位置:   article > 正文

Django Rest Framework 4:认证、权限和限流

Django Rest Framework 4:认证、权限和限流

目前,我们的 API 对谁可以编辑或删除没有任何限制。我们希望有更高级的行为,以确保:

  • 代码片段始终与创建者相关联。
  • 只有通过身份验证的用户可以创建片段。
  • 只有代码片段的创建者可以更新或删除它。
  • 未经身份验证的请求应具有完全只读权限。

其实这些要求也是各种资源普遍应该拥有的权限,要操作这些资源,前提就是能通过认证,甚至还会被一些限流机制所限制。

一,django 中的用户、权限与认证

Django 认证系统处理验证和授权:

  • 验证检查用户是否是他们的用户
  • 授权决定已验证用户能做什么

这里的认证用于指代这两个任务。这两个任务都依赖于 User 模块。

  • User 通过从 PermissionsMixin 中继承的 groups 字段与 Group 产生多对多关联。
  • User 通过从 PermissionsMixin 中继承的 user_permissions 字段与 Permission 产生多对多关联。

django 默认为每个模型创建 view、add、change 和 delete 这四项权限。但也允许直接操作 Permission或在模型 Meta 中创建额外的权限。

  • 通常会在管理后台进行用户分组以及权限分配相关的操作。

在登录、注销等操作中可直接使用认证系统提供的验证函数、装饰器、Mixin等手段对用户进行身份验证、权限验证和一些其他的限制性操作。

二,进行认证和权限开发的准备工作

(一)添加用户

DRF 的权限与认证也都依赖于用户模型,为了让代码片段始终与创建者相关联,首先就需要修改 Snippet 模型,让它关联用户模型(这里我们直接使用 django 内置的 User 模型)并能够存储代码的高亮显示的HTML内容。看看代码内容 本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/865086

推荐阅读
相关标签