管理平台前端权限设计思考 - lbwa/adminize-template GitHub Wiki

本项目主要是作者对自身开发经历的总结及思考。

概述

在一般的管理平台 web 应用中

实现方案

  • 简单的 role 判断

  • 在 role 判断的基础上细分权限

  • 如何实现更加细致细粒度的权限控制?

    • 建立前端全局私有预设路由集合 GlobalPrivateRoutesMap

      1. 加载全局公有路由 PublicRoutesMap

      2. 获取当前用户的 access list 后,序列化为 access map

      3. 通过 access map 过滤全局私有预设路由集合 GlobalPrivateRoutesMap 形成最终的 PrivateRoutesMap,再通过 vueRouter.addRotues 将生成的 PrivateRoutesMap 添加到全局路由实例中。

    • 通过服务端根据当前用户的 access list 生成 PrivateRoutesMap,而不是在前端生成 PrivateRoutesMap,此时,前端根据服务端返回的 PrivateRoutesMap 序列化加入 vue 组件信息。最终通过 vueRouter.addRoutes 将序列化后的 PrivateRoutesMap 添加到全局路由实例中。

方案优劣分析