以前做过权限是写死的,最近想了解一下可以添加权限的这个功能。
想问一下权限可以添加的问题。
- 比如说,网站一开始的权限初始化好了,使用过程中,管理员添加了一个 编辑文章的 权限,这时候拥有这个权限才可以编辑文章,但是代码是一开始就写好的,开发者不可能想到管理员添加这个权限,那么这个新添加的权限有什么用呢?
- 还是我理解错了,可以动态添加权限并不是这么一回事?望解疑。 谢谢。
以前做过权限是写死的,最近想了解一下可以添加权限的这个功能。
想问一下权限可以添加的问题。
权限添加的方式有很多,直接写在业务代码里面的权限判断是最简单明了的一种,但是会给开发造成负担,维护起来也不方便,就比如遇到题主描述里面的问题,基本只能交给开发来改。
我比较常用的权限控制,是写一个中间件,或者控制器的构造函数里,使用某些固定的格式来直接进行权限管理。举个例子:
通常我们的控制器的命名是有规则的,xxxController
权限的格式是:控制器名 + 方法名
比如 文章相关的控制器: ArticleController 里面有个编辑的函数:edit
那么 编辑文章的权限名就是字符串: ‘articlecontroller@edit’
某个请求到来的时候,在中间件或者构造函数中,判断这个用户是否有相应的权限。如果没有,则中断函数,进行异常处理。如果有,则继续执行代码。
2 回答3.2k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
3 回答1.7k 阅读
a. 检查路由是否存在于路由表中
b. 存在则获取当前登录用户/角色是否有该路由权限(有则$next,无则响应无权限提示)
c. 不存在直接$next($req)
当需要添加文章编辑权限时:
https://github.com/Sydney710/...