主题:本文章主要介绍若依前后端分离项目页面组件中的按钮权限控制
目标:
基础目标:组件页面内显示按钮功能,但是发请求到后端时,后端进行判断该用户是否有该权限,没有则前端提示没有权限,有则进行处理
进阶目标:如果该用户没有按钮的访问权限,那么就直接不在前端显示该按钮

基础目标(使用admin用户登录)
第一步:在系统管理页面的菜单管理中配置权限按钮(注意是按钮)

新增后若依系统会自动往数据库添加该数据:

第二步:在角色管理界面给角色赋予权限:

第三步:当你往后端发送请求后,用若依框架自带的注解进行权限校验:

那么到现在为止基础目标已经实现;
进阶目标:
第一步:在基础目标的步骤上在前端进行权限校验

当加了这个若依封装的v-hasPermi标签,那么前端就会自动检测该用户是否有这个权限,没有这个权限的话那么新增按钮就不显示;
查看结果用被赋予普通角色的用户,我这里是ry(用户名);至于哪个角色被赋予了什么权限,可以在前端的系统管理中的用户管理设置,当然也可以在数据库中直接操作,因为在前端设置也是发请求然后操作数据库(和添加权限按钮类似);

其中的导入按钮是我后来写的,并没有做权限控制,所有依然存在;
杂谈:关于若依权限控制
权限控制基础五表:用户表,角色表,用户角色关联表,权限表,角色权限关联表

如果给每个用户都分别赋予不同操作的权限,那么太过冗杂,所以采用以上五表关联;
角色权限关联表里面存储这不同角色对应的一个或多个权限,然后把一个或多个角色通过用于角色关联表赋给具体的一个用户,在若依框架中,在用户登录时,会进行以上五表联查,用户-------->角色--------->权限,最后把这个用户的所有权限查出来给前端,每次请求后端都会带着这些权限去验证,看看用户是否有对应操作的权限;
以上是我的理解,不对之处,请各位直抒己见
6551

被折叠的 条评论
为什么被折叠?



