文章目录
- 一、简介
- 1.基于权限字段串
- 2.基于角色
- 二、若依的权限控制
- 1.介绍
- 2.实践
一、简介
基于权限字段串和基于角色的访问控制是两种不同的权限管理模型,它们各自有其优点和应用场景。下面是这两种模型的基本概念:
1.基于权限字段串
基于权限字段串(Permission String-Based Access Control)的模型中,用户的权限被编码成一个字符串或者一系列的标志位(通常是二进制)。这些字符串或标志位代表了用户可以执行的一系列操作。
例如,在一个简单的文件系统中,可能有以下几种权限:读取、写入和执行。对于每个文件,都可以分配这三个权限给用户,形成一个三位的二进制数,如"110"表示用户拥有读取和写入权限,但没有执行权限。
这种方式的优点是简单直观,可以直接通过比较权限字符串来判断用户是否有某个特定的权限。然而,缺点是在大型系统中,随着功能的增长和变化,权限字符串可能会变得非常复杂,难以管理和维护。
2.基于角色
基于角色的访问控制(Role-Based Access Control, RBAC)是一种更复杂的权限管理模式。在这种模型中,权限不是直接赋予用户的,而是通过角色间接赋予。首先定义一系列的角色,每个角色都有一组相关的权限。然后将角色分配给用户,从而实现了对用户权限的管理。
在RBAC中,通常存在三种类型的实体:
用户(User):实际使用系统的主体。
角色(Role):一组权限的集合,它可以被赋予用户。
权限(Permission):允许进行的具体操作,比如查看、编辑、删除等。
RBAC的优势在于它的灵活性和可扩展性。新的角色可以很容易地创建并分配给用户,而不需要修改现有的用户权限。此外,由于权限是与角色关联的,而不是直接与用户关联,因此当需要更改权限时,只需要更改相关角色的权限设置,而不需要逐一调整每个用户的权限。
总的来说,基于权限字段串的方法适用于较小且相对稳定的系统,而在大型、复杂且不断发展的系统中,基于角色的访问控制模型更为适用。
二、若依的权限控制
1.介绍
若依框架采用了基于角色(Role-Based Access Control, RBAC)的权限控制模型。这种模型将权限与角色相关联,而不是直接与用户关联,从而提高了灵活性和可扩展性。
在若依框架中,用户通过被赋予不同的角色来获得相应的权限。开发者可以创建多个角色,并为每个角色分配不同的权限。然后将这些角色分配给用户,以实现对用户权限的管理。
此外,若依框架还提供了数据权限控制、按钮级权限控制等功能,以适应复杂的业务需求。这些都是基于角色的权限控制模型的一部分,而不是基于权限字段串的方法。
2.实践
-
自定义接口
下面定义了一个get接口,并且设置了该接口的权限字符串为system:student:permTest
-
前端新建和配置菜单权限
分配权限
-
前端添加按钮和定义接口
绑定触发事件
设置api接口
-
切换用户测试
点击按钮后
验证成功