news 2026/6/15 18:49:22

权限动态管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
权限动态管理

权限动态管理

一般后台权限动态管理基于RBAC基于角色的访问控制官方标准实现,先由后端定义角色和系统全量菜单,再通过角色授权为不同角色分配不同菜单权限。用户登录时,后端根据其角色返回对应的权限菜单。路由是组件的映射关系,分为常量路由和权限路由,初始化创建路由实例时始终以常量路由为基础,权限路由是支撑所有功能的全量路由,新增功能只需扩展这个全量权限路由即可。

接下来我们根据后端返回的权限菜单,对全量权限路由做减法筛选,只保留当前角色有权限的路由,再通过Vue Router实例的addRoute方法,把筛选后的动态权限路由添加进去,这样就实现了不同角色对应不同菜单的权限控制。

刷新页面报404,是因为刷新会重新加载JS文件,此前动态添加的路由会丢失。我们将后端返回的权限菜单码缓存到sessionStorage,刷新后数据不会丢失,且权限路由是前端文件本身也不会丢失。所以在路由入口文件中,我们判断若缓存的权限菜单存在,就重新执行路由筛选、addRoute动态添加的逻辑,这个处理方法统一放到Vuex的Action里,再配合全局路由守卫,用户已登录且动态路由重新添加完成后直接放行,跳转到对应菜单页面,以此解决刷新404问题,实现权限的刷新保持。

另外,路由处理逻辑要放在Vuex的Action里,并非因为有异步请求,而是调用addRoute修改了全局路由实例,这属于副作用操作;而Vuex的Mutation只能做纯同步的State数据修改,不允许有任何外部副作用,所以即便只是纯前端的比对筛选操作,也必须放到Action中。且这个Action是纯前端操作,不会出现失败的情况,就算不手动return Promise也可以,因为Vuex的Action本身会自动返回一个Promise实例,默认是成功状态;若后续有失败场景,再手动return新的Promise控制成败即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:10:00

基于DDD开发的KYC用户实名认证

❯ 使用ddd进行开发,为什么能简化代码 ⏺ 很好的问题!让我用你的 KYC 项目实际改造的例子来说明 DDD 为什么能简化代码。 🎯 核心原因:消除重复 职责集中 1. 业务规则封装,避免到处重复验证 改造前(贫血…

作者头像 李华
网站建设 2026/6/15 13:13:59

腾讯轻量云服务器的优点

腾讯轻量云服务器(Lighthouse)的核心优点在于性价比高、开箱即用、管理便捷,特别适合个人开发者、中小企业、初创团队等轻量级应用场景。以下是其核心优势的详细说明:一、核心优势对比表优势维度具体表现适用场景成本优势​价格比…

作者头像 李华
网站建设 2026/6/13 10:27:28

AtomGit 开源雷达 第 1 期:这些开源项目,正在被开发者偷偷使用

有时候刷开源平台,会有一种很微妙的感觉: 有些项目不在热榜上,也没怎么被营销,但已经有人在用、在改、在真干活了。《AtomGit 开源雷达》就是从这种“翻项目”的过程里诞生的。 不是评奖,也不是榜单,而是站…

作者头像 李华
网站建设 2026/6/15 14:22:11

如何将照片从计算机传输到Android /iPhone

如果想要无误地将照片从电脑传输到Android或iPhone手机,可能会遇到一些难题。的确,有很多方法可以将照片从电脑传输到手机,反之亦然,但并非所有方法都可靠。 Android用户和苹果用户将照片下载到手机的合适方法有所不同。以下信息…

作者头像 李华
网站建设 2026/6/15 14:33:23

【游戏推荐】时光之塔(Tower of Time)免安装中文版

类型: 策略, 角色扮演 链接:https://pan.quark.cn/s/3463e6ee0254 游戏简介 《时光之塔》(Tower of Time)是一款精彩绝伦的冒险游戏,能够为你带来超过50小时的游戏体验。精致的手绘风格关卡,丰富的故事剧…

作者头像 李华
网站建设 2026/6/10 13:29:14

实习避雷~

看面试过程是否正规就能分清一家公司值不值得去 我第一段实习 面试过程很潦草 就问了几个linux命令 结果进去之后让我打杂 不被当人看 还有就是不要去养老公司 那样没前途学不到东西的

作者头像 李华