博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django基础知识~ RBAC权限周边初探
阅读量:6546 次
发布时间:2019-06-24

本文共 1243 字,大约阅读时间需要 4 分钟。

一 基本定义 权限核心定义RBAC( Role based access control)

二 权限设计流程
   1 创建基本权限流程表
   2 录入流程表相关数据
   3 编写中间件进行流程验证
   4 完成流程
三 权限相关表细节
   1 权限表的设计三张表(用户表,角色表,相关权限表)
   2 用户表本身存储用户密码,角色表存储组名称,权限表存储具体的url访问路径
   3 用户表和角色表是多对多关系,也即是一个用户可能属于多个组,一个组可能拥有多个权限
四 权限细节补充
   1 一个完整的url应该包含正则表达式,这点要牢记.常见于编辑和删除场景.录入的url要记得完全匹配访问url
   2 多对多的字段名为关联model小写即可比如 roles=models.ManyToManyField(to="Role")
   3 多对多对孩子类的查询推荐使用反向查询,类似 父母__key
五 录入数据
   采用admin录入能加快速度
六 中间件
  1 基础:我们要知道,任何访问都要经过中间件的处理.配置项在setting
  2 基本定义
    继承类 from django.utils.deprecation import MiddlewareMixin
    预定义方法名->需要重写
    process_request(self,request)
    process_response(self, request, response)
    以上方法的返回值可以是None或一个HttpResponse对象,如果是None,则继续按照django定义的规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回给用户。
  3 自定义中间件定义类重写上述方法即可
七 基本权限中间件流程
    1 白名单验证机制->在setting中进行配置匹配
    2 查询当前登录状态->检测用户ID
    3 查询访问路径是否在权限列表中
    4 判断完成
 八 流程设计补充
   1 流程顺序不能改变,可以采用re.search()进行匹配判断,因为url会包含正则
 九 登录后的session处理
   1 session存档用户ID
   2 session存到用户权限列表
   这两项中间件都需要进行验证用到
十 session基础知识补充
   1 django_session表
      session_key key
      session_data value 这里存取的是我们自定义和已存在的相关数据,属于字典类型.例如下面的字典键值
      session_date 过期时间
   2 session本身是字典,django最常见的就是查询和赋值
   3 django会默认为session使用json序列化。json序列化只能序列化一些基本数据类型,如数字,字符串,列表等
十一 总结

   1 三部分 view 中间件  前端  

   2 三流程  读取权限和菜单 设置白名单  进行权限和对应菜单检查

转载于:https://www.cnblogs.com/danhuangpai/p/11017364.html

你可能感兴趣的文章
Go语言学习笔记-通道
查看>>
构造函数,重载,静态方法和静态成员
查看>>
Vue 实现前进刷新,后退不刷新的效果
查看>>
xss和csrf攻击的那些事儿
查看>>
SpringCloud学习之路(四) - 服务消费者(Feign)
查看>>
RxJS Observables vs Promise 之简单对比
查看>>
2017年软件工程第十二次作业-PSP总结报告
查看>>
HTTP协议头注射漏洞实例
查看>>
HTTP常见错误代码总结
查看>>
5.Node.js 安装配置
查看>>
Project facet Java version 1.8 is not supported解决记录
查看>>
Richard Stallman's computer
查看>>
IE6下Png透明最佳解决方案(推荐) Unit PNG Fix
查看>>
水平居中
查看>>
[ZJOI2016]小星星
查看>>
647. Palindromic Substrings
查看>>
iphone-common-codes-ccteam源代码 CCPlistFileReader.h
查看>>
构造方法
查看>>
"_OBJC_CLASS_$_MAMapServices", referenced from: 的问题修复
查看>>
SQL效率之索引
查看>>