美文网首页
权限增加缓存设计

权限增加缓存设计

作者: 有梦想的虫子_2018 | 来源:发表于2022-03-26 21:38 被阅读0次

    RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。
    这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。

    1、权限核心-用户角色资源

    权限核心.png

    菜单采用树形结构展示给前端

    角色与用户多对多

    角色与菜单(资源)多对多

    菜单、接口、页面等资源进行平台的划分,角色进行系统的划分

    2、获取资源流程

    2.1从数据库中获取菜单

    以往都是用户登录完成后,通过权限中心提供一个获取菜单树的接口,直接从数据库中获取。

    数据库中获取数据.png

    2.2从缓存中获取资源

    权限不足403, 具体的返回码需要与前端约定

    缓存中获取数据.png

    3、缓存

    角色对应的资源缓存

    类型 redis数据结构 key value
    菜单 string systemId:roleId:menu:platformId 菜单列表
    接口 set systemId:roleId:api:platformId 路径 /api/user/info
    页面 set systemId:roleId:page:platformId 页面

    用户对应的资源缓存

    类型 redis数据结构 key value
    菜单 string menu:token 菜单树
    接口 set api:token 路径 /api/user/info
    页面 set page:token 页面

    4、添加资源

    增加资源后,为角色分配资源时,保存数据库后,需要更新角色在redis中对应的缓存


    添加资源.png

    5、切换商户

    切换商户,更新对应token的资源缓存,token的资源缓存,根据role的资源缓存生成。

    切换商户.png

    6、接口获取

    根据swagger,获取所有的接口,进行进口权限的分配


    分配接口权限.png

    相关文章

      网友评论

          本文标题:权限增加缓存设计

          本文链接:https://www.haomeiwen.com/subject/wcosjrtx.html