如何实现Vue前端权限控制:SpringBoot-Shiro-Vue动态路由生成机制详解

张开发
2026/4/6 12:48:39 15 分钟阅读

分享文章

如何实现Vue前端权限控制:SpringBoot-Shiro-Vue动态路由生成机制详解
如何实现Vue前端权限控制SpringBoot-Shiro-Vue动态路由生成机制详解【免费下载链接】SpringBoot-Shiro-Vue提供一套基于Spring Boot-Shiro-Vue的权限管理思路.前后端都加以控制,做到按钮/接口级别的权限。当前新版本已移除shiro依赖简化了配置项目地址: https://gitcode.com/gh_mirrors/sp/SpringBoot-Shiro-VueSpringBoot-Shiro-Vue是一套专注于权限管理的前后端分离解决方案提供从接口到按钮级别的精细化权限控制。本文将详细介绍其前端动态路由生成机制帮助开发者快速掌握Vue项目中的权限控制实现方法。 权限控制的核心价值在多角色系统中不同用户应看到不同的功能菜单。例如管理员能看到用户管理页面而普通用户则无权访问。如果仅在后端进行权限控制前端仍可能展示无权限的菜单导致用户体验下降和潜在的安全风险。Vue前端权限控制主要解决两个问题动态生成符合用户权限的路由表根据权限控制页面元素的显示/隐藏 动态路由生成的实现流程1. 路由拦截与权限验证项目通过router.beforeEach实现路由拦截在每次路由跳转前进行权限验证router.beforeEach((to, from, next) { NProgress.start() if (getToken()) { // 已登录状态处理 if (to.path /login) { next({path: /}) } else if (!store.getters.userId) { // 刷新页面时重新获取用户信息 store.dispatch(GetInfo).then(() { next({...to}) }) } else { next() } } else if (whiteList.indexOf(to.path) ! -1) { // 白名单路由直接放行 next() } else { // 未登录跳转至登录页 next(/login) } })代码位置vue/src/permission.js2. 用户信息与权限加载登录成功后系统会获取用户权限信息菜单列表、权限列表等并触发动态路由生成// 获取用户信息 GetInfo({commit, state}) { return new Promise((resolve, reject) { api({ url: /login/getInfo, method: post }).then(data { // 储存用户信息 commit(SET_USER, data); // 生成路由 store.dispatch(GenerateRoutes, data).then(() { // 添加动态路由 router.addRoutes(store.getters.addRouters) }) resolve(data) }) }) }代码位置vue/src/store/modules/user.js3. 路由筛选与生成系统通过filterAsyncRouter函数根据用户菜单权限筛选出可访问的路由// 递归过滤异步路由表 function filterAsyncRouter(asyncRouterMap, menus) { const accessedRouters asyncRouterMap.filter(route { if (hasPermission(menus, route)) { if (route.children route.children.length) { // 递归处理子路由 route.children filterAsyncRouter(route.children, menus) return (route.children route.children.length) } return true } return false }) return accessedRouters }代码位置vue/src/store/modules/permission.js4. 无权限页面处理当用户访问无权限的路由时系统会跳转到404页面提供友好的错误提示 权限控制的最佳实践前后端双重验证前端控制路由和UI显示后端验证接口权限确保安全最小权限原则只加载用户需要的路由和资源提高性能和安全性动态更新机制权限变更后无需刷新页面即可更新路由白名单机制对登录页、404页等公共页面设置白名单无需权限验证 快速开始使用克隆项目仓库git clone https://gitcode.com/gh_mirrors/sp/SpringBoot-Shiro-Vue参考项目文档配置前后端环境体验完整的权限控制功能通过以上机制SpringBoot-Shiro-Vue实现了灵活而安全的前端权限控制既能保证用户体验又能有效防止越权访问。开发者可以基于此框架快速构建具有复杂权限需求的企业级应用。【免费下载链接】SpringBoot-Shiro-Vue提供一套基于Spring Boot-Shiro-Vue的权限管理思路.前后端都加以控制,做到按钮/接口级别的权限。当前新版本已移除shiro依赖简化了配置项目地址: https://gitcode.com/gh_mirrors/sp/SpringBoot-Shiro-Vue创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

更多文章