权限管理前端开发须知

142 阅读3分钟

权限管理/前端说明

开发需要更新一下 dockervue_2.6 的环境 // "babel-eslint": "7.2.3"

前端的权限管理设计为根据服务端下发的权限列表,来自动区别哪些是菜单的显示项,哪些是纯内⻚, 哪些是纯功能操作,所有前端的权限操作都是依据此此权限列表来动态生成的;所以就前端来言,路由 规则制定为,以 pages 为路由的根目录, pages 下的⻚面均可作为路由来控制显示⻚面;

返回的权限结构是:

{
    // ...
    rightKey: '34276fb093160d8ec8d6c6b208aa95e8' // {1} 权限key 
    rightName: '主播所属工会迁移功能' //{2}权限描述 在前端没有作用,后期可能会去掉
    uri: '/unionList,,zbMOVE' //{3} 权限路由以及配置
    webRemark: '' //{4}菜单显示
    //...
}

主要用到了权限接口里这几个参数;使用的话需要引入 @lib/mis/permission/index 库,首先需要服 务端必须有 /a/auth/login/a/auth/check 这两个接口

{1} 是权限的 key,主要用作功能操作的限制,可以使用 v-auth2 指令或者 this.auth2() 方法来验证 是否有此权限

{2} 权限的描述,用于前后端沟通使用

{3} uri 是权限路由以及操作的区分,使用英文逗号 , 来区分分别代表 /url路由[route],使用的组件名 [components],纯操作功能的描述[action] ,若是组件名在路由同时都是指向 pages 下的同一个组件,那 么是可以省略的,一旦有操作功能描述,那么约定为此权限只生效为为此⻚面内的操作功能权限,且该 路由不会记录在 router

{4} 纯前端使用,只是用于菜单的展示,支持多个层级,例如 工会审核/主播审核 这样会把 uri 放在放在 工会审核下面的主播审核⻚面上,且会作废工会审核上的 uri;为空时只是展示路由内⻚。支持排序,每 个菜单名字后拼接 : 添加优先级;默认时 99,0 是优先级最高的;依次升序优先级降序排列,例如 工会 审核:8/主播审核:2 ,优先级只是作用于兄弟节点。

项目对接权限

  • 权限相关的处理程序在 @lib/mis/permission/index ,在项目上添加时需要在 store 文件中加 入即可
  • 权限功能初始化时需要去查阅改项目做属于的模块,分类; productId.serverId.moduleId 按照 这个顺序拍成一个字符串当作获取权限的唯一标示,告诉服务端要获取那个模块的权限;支持多个 使用,分开;例如3.5.5,3.5.6 (2020-9-29)
// store.js
import initPermisssin from '@lib/mis/permission/index' 
export default {
    modules: initPermisssin(''), // psm (2020-9-29) 
}
  • 菜单显示建议使用 @lib/mis/menu/newMenu ,若需要定制可以参考这个组件来定制,

    • 支持自定义菜单,即本地菜单和权限菜单一起显示(本地在上,下发在下)(2020-9-29)
  • 路由,把现有的路由可以选择去掉,只留一些公共的路由即可,凡是带有权限的⻚面的路由均通过 下发来生成;

  • 一旦介入后需要在权限管理后台进行增删权限进行测试;

  • 在开发时新增的一些权限需要同时同步一下相关的服务端同学,进行权限校验。