当前位置: 首页 > 知识库问答 >
问题:

如何实现前端的rbac(权限模型)?

吕淮晨
2023-08-10

业务场景:
同一个登陆页面,管理员和普通用户有不同的用户名和登录密码。登陆之后需要进入不同的home页面,以此类推,导航栏也完全不同。所有UI和功能都不同。也就是说同一套代码,登陆的之后却是不同的网络应用。

问题:

  1. 这种设计在开发中会不会有什么不便的地方。比如:这一个代码库跑在localhost:3000上面,那么存储的token也在这个3000 localStorage下面,如果我想要同时开发“普通"用户页面和”admin“页面,那么一个localStorage可能是没有办法重复存储这个token,是不是要先开发”普通“页面,然后登出,然后在登陆”admin“页面,再开发管理员的功能。(只用一个浏览器的情况下)
  2. 这种App的最佳实践是什么,是通过某个前端库,比如react-rbac/react-admin或者是通过路由react-router,请大佬指点一下实现这个的基本思路?
  3. 这种实践需要后端如何配合?我能想到的就是后端的login response里面,除了token之外,还要有user object,里面包含一个字段“role".除了这个之外还有别的吗?
  4. 假如我要为一个客户开发一套app,包含:普通用户前端+管理员前端+后端+移动端。那么请问您是否推荐这种产品架构,或者说,在什么情况下,这种合并普通用户前端+管理员前端的架构比较好,什么情况下不推荐这种架构。
  5. 您在开发这种产品的过程中有什么其他的感想吗?

共有1个答案

巫马化
2023-08-10

这不是很常见的,后台的场景吗,后台提供提供一个权限列表,动态加载路由,根据角色权限动态添加,你所有的页面都可以开发出来,动态添加路由,不同的角色访问的不一样就行了
,你的第一个token冲突的问题,可以用不同的浏览器或无痕模式进行开发,或者你在开发环境设置不同的端口。

可以看看这些文章更细节:前端 RBAC 权限方案

 类似资料:
  • 根据RBAC 模型的定义,我在数据库中建了有下面五个表: 用户表,用户-角色关联表,角色表,角色-权限关联表,权限表 现在我已经写好了对应的拦截器,并且在拦截器中通过token获取到用户,再通过这几张表获取到当前用户所拥有的权限列表了, 但是这个权限列表是怎么用的? 就比如 : 我知道前端项目需要做动态路由的时候会需要后端帮忙存储一个 路由表,一个 角色-路由关联表 ,是不涉及到权限表的,或者说这

  • 我正在尝试在一个网站上实现RBAC(基于角色的访问控制)。 问题是嵌套对象的权限。 假设我们在网站上有一些项目。每个用户在每个项目中都可以有一个角色。例如,user1在project1中具有admin角色,在Project2中具有customer角色。 例如,admin角色包含一些权限,如添加子项目、删除子项目等。 我读过的关于RBAC的所有文档都定义了一般的权限,如添加子项目,但当用户具有此权限

  • 主要内容:1.权限模型,2.权限系统表设计1.权限模型 1.1 权限设计 从业务分类上来讲权限可以分为,等, 对应到系统设计中有页面权限、菜单权限、按钮权限等。菜单也分一级菜单、二级菜单甚至三级菜单. 按照这个架构,按钮的父级是二级菜单,二级菜单的父级是一级菜单,这样用户申请权限的时候非常清晰的看到自己需要哪些权限。 1.2 为什么需要角色 这种模型能够满足权限的基本分配能力,但是随着用户数量的增长,这种模型的弊端就凸显出来了,每一个用户

  • 本文向大家介绍权限管理如何实现?相关面试题,主要包含被问及权限管理如何实现?时的应答技巧和注意事项,需要的朋友参考一下 1)前端控制: 前端的控制比较简单,从后台获取到用户的权限之后,可以存在session或者cookie中,然后在页面加载的时候,通过session或者cookie中存的权限来选择让该功能展现或者禁用。 前端实现代码详细参见:http://blog.csdn.net/liuweid

  • 本文向大家介绍RBAC权限模型_动力节点Java学院整理,包括了RBAC权限模型_动力节点Java学院整理的使用技巧和注意事项,需要的朋友参考一下 权限系统与RBAC模型概述 RBAC(Role-Based Access Control )基于角色的访问控制。 在20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国Georg

  • 问题内容: Android开发人员文档提供了以下在运行时请求权限的示例: 在此示例中,什么是“ MY_PERMISSIONS_REQUEST_READ_CONTACTS”?它说这是一个应用程序定义的int常量,但这是否意味着我应该制作一个Constants.java并声明一个公共静态int?该值是多少? 在其他示例中,我看到人们在这里使用1,或者0或0xFFEEDDCC,但是我找不到它的解释。有人