首页
关于
归档
朋友
壁纸
留言
API平台
告白墙
更多
休闲游戏
留言板
练字贴
Layui手册
Search
1
【PHP】PHPoffice/PHPSpreadsheet读取和写入Excel
1,020 阅读
2
【Git】No tracked branch configured for branch master or the branch doesn't exist.
749 阅读
3
【composer】composer常用命令
490 阅读
4
【Layui】控制页面元素展示隐藏
443 阅读
5
【MySQL】MySQL触发器应用场景和使用方法
422 阅读
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
登录
Search
标签搜索
PHP
函数
方法
类
MySQL
ThinkPHP
OOP
JavaScript
Layui
Web
Linux
Array
设计模式
Git
PHPSpreadsheet
PHPoffice
排序算法
面试题
Windows
基础
小破孩
累计撰写
212
篇文章
累计收到
16
条评论
首页
栏目
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
页面
关于
归档
朋友
壁纸
留言
API平台
告白墙
休闲游戏
留言板
练字贴
Layui手册
搜索到
1
篇与
的结果
2022-06-19
【PHP】基于RBAC模式解决权限管理
本文以最简单逻辑解释什么是rbac模式本文全是个人理解,如有不恰当的地方,请指出,互相学习RBAC(Role-Based Access Control)权限模型的概念,即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。1.创建最基本的三个表,即 人员表(admin),角色表(role),功能表(func),和一个扩展人员权限表(admin_func)人员表:必有得字段(role_id)角色表:必有的字段(func_ids)人员扩展权限表:必有得字段(admin_id,func_ids)2.整体思路用户登录,查人员表数据,获取到角色唯一标志(这里是id)通过角色唯一标记,获取权限(这里角色里面的func_ids里面的数据通常是逗号隔开的字符串,我们在业务逻辑上处理时,转换成数组比较好处理)用户操作任意一个功能,获取到该功能的 控制器 和 方法 去功能表里查获取到id获取到的id判断是不是在上一步查的角色所对应的func_ids里面3.特殊情况如果在一个公司内,举个例子,在同一个公司有两个销售部(a部门,b部门),两个销售部的领导都是有一样的权限的(角色是一样的),这个时候,公司高层决定,a部门的领导为总领导,可以查看b部门的数据,这个时候,都知道,a和b的部门领导角色不能修改,一种笨方法,在开一个账号,分配角色和权限,可以查看b部门的数据,这样不符合工作逻辑,对领导不友好,下面就有了扩展人员权限在扩展人员表里绑定人员id和对应的功能表的id这样在我们操作的时候就多了一个步骤,多查一个表(admin_func),获取到的数据在和角色里面的权限进行合并,在做后面业务逻辑操作4.在什么位置实现权限在你看来怎么方便怎么实现,最好的就在中间件里实现权限验证,可以有效的降低无效访问中间件的主要应用场景可以包括对HTTP请求的数据过滤、权限检测、请求拦截等行为,使用中间件能够让控制器的定义更加简单,很多额外的非核心业务流程的处理都可以交给中间件执行。补充: 在实际的代码逻辑中应该避免用if else 判断不同角色查看同一接口返回不同的数据,不同的角色应该在权限理固定好访问接口。这里面需要更多的绑定关系。
2022年06月19日
121 阅读
0 评论
0 点赞