AntDesignPro的权限控制和动态路由
2024-09-02 01:11:42
最近看了AntDesignPro关于权限控制的官方文档以及自己框架里权限控制的实现,总结一下。
先贴一下官网上关于权限控制的图有利于理解
步骤如下:
- 判断是否有
AccessToken
如果没有则跳转到登录页面 - 获取用户信息和拥有权限
store.dispatch('GetInfo')
- 用户信息获取成功后, 调用
store.dispatch('GenerateRoutes', userInfo)
根据获取到的用户信息构建出一个已经过滤好权限的路由结构(src/store/modules/permission.js
) - 将构建的路由结构信息利用
Vue-Router
提供的动态增加路由方法router.addRoutes
加入到路由表中 - 加入路由表后将页面跳转到用户原始要访问的页面,如果没有
redirect
则进入默认页面 (/dashboard/workplace
)
大概思路是在用户登陆时拿到该用户的角色,根据角色可以知道该角色对应有哪些菜单,然后通过一个逻辑方法 将这些从数据库拿来的菜单数据进行处理(递归处理子菜单,加入映射的组件等),筛选并组合成router所需要的数据格式的数组,最终在路由守卫中将这个数组router.addRoutes()添加到路由中
其实不管是动态路由还是mock数据,最终都是处理成一样的符合路由结构的一个数组后进行router.addRoutes()。
我的框架中菜单的权限实际上已经在接口中被过滤掉了,拿到的数据都是该角色有权限的菜单,下图中的permission参数在antdvpro中指的是指令权限,也就是action级别的权限
action级别的权限控制,在组件上加上v-action:[method],即可实现自行判断权限
最新文章
- 三维网格精简算法(Quadric Error Metrics)附源码
- MySQL DDL 整理
- ORACLE 获取程序当前位置的方法
- Android存储空间不足的解决办法
- CoreAnimation-05-CABasicAnimation
- OpenStack:初识
- 对有状态bean和无状态bean的理解(转)
- Centos 下安装Zabbix Linux 客户端
- mysql存储过程 基本语法
- ConcurrentHashMap源码阅读
- python 程序中调用go
- Python——爬取人口迁徙数据(以腾讯迁徙为例)
- transform、transition、animation 区别
- MySQL — 优化之explain执行计划详解(转)
- include指令和<;jsp:include>;动作标识区别:--不明觉厉 先收藏
- checklistboxx 多选取值 和选中
- tensorflow 优化图
- 表优化 altering table OPTIMIZE TABLE `sta_addr_copy`
- ehlib 安装
- Android 性能优化之使用MAT分析内存泄露
热门文章
- 【Java】标识符 &; 命名规则
- C++基础的一些代码和笔记 stl乱炖
- stand up meeting 1/14/2016
- 玩转控件:Fucking ERP之流程图
- SQL语句加锁分析
- IN612 IN612L蓝牙5.0 SoC芯片替换NRF52832/NRF52840
- 使用redis-dump与redis-load方式迁移redis数据库
- mysql参数max_binlog_cache_size设置不当引发的血案
- 进程管理工具 Supervisor
- js输入框练习