Vue后台管理项目权限处理思路

后台管理系统的权限(vue如何实现后台管理系统的权限,react如何实现后台管理系统的权限) CRUD的权限思路:根据后端返回的权限数据(如,这种用CRUD字母标识:"0-1-0-R", "0-1-0-U", "0-1-0-D"),通过路由传参,在组件里,显示或者隐藏对应的按钮即可。不同的系统,有不同的角色(其实就是甲方公司的职位),如:HIS(医院信息管理系统)的角色有:院长,主任,医生,护士,药剂师等等,这些人属于不同的岗位,那么,也就具备不同的功能。不同的用户进入同一个页面,对数据的操作权限不一样,即:有的用户进去后,只能查询数据,有的用户可以对数据进行添加,修改,删除。这个权限会发给后端。 阅读详情

不同角色权限的菜单栏渲染思路

根据后台返回的right数据渲染角色菜单, 在login页面请求数据时使用this.$store.commit调用该方法将将其存入vuex里,并对其做本地化处理,需要事先在mutation中定义相应添加的方法,然后在home页面进行使用时,使用mapstate将数据…mapstate存入computed(…mapState([‘rightList’])里进行处理,然后v-for渲染时直接使用即可。
注意:如果不进行本地化处理,页面刷新后将会丢失菜单栏信息,因为其信息是在login页进行获取并存储的。 退出时需要调用sessionstorage.clear/remove清除本地数据,然后让页面重新加载,即可清除vuex中的数据。

退出功能

2.根据角色权限实现动态添加路由

// 定义路由规则
const reportRule = {
  path: '/reports', component: Report
}
const orderRule = {
  path: '/orders', component: Order
}


// 定义二级权限字段与路由规则之间的对应关系
const ruleMapping = {
  'reports': reportRule,
  'orders': orderRule
}

// 定义动态添加路由的方法并导出至login页面进行使用
//  根据二级权限,对路由规则进行动态添加
export function initDynamicRoutes () {
  // router对象中的options下的routes就是所有的路由规则
  const currentRoutes = router.options.routes
  // 假定我们要向其中第2个路由中的children添加对应路由
  const rightList = store.state.rightList
  // 双重foreach遍历到其二级权限
  rightList.forEach(item => {
    // 此时的item对应后台返回数据中的一级权限
    // 通过循环一级权限下的children节点拿到所有二级权限
    item.children.forEach(item => {
      // 通过映射关系拿到对应路由规则 item.path就是二级权限字段
      const tem = ruleMapping[item.path]
      // 将对应路由规则添加到当前路由对象
      //此时可以向tem添加meta节点
      //tem.meta = '后台返回数据对应的权限节点数据'
      currentRoutes[2].children.push(tem)
    })
  });
  // push完后 调用对应api进行路由规则的添加
  router.addRoute(currentRoutes)
}

调用时机:登录成功后调用initDynamicRoutes()
总体思路就是根据后台返回的权限数据来判断该用户是否具有该路由权限,无权限则直接404。而动态添加路由的思路是拿到router实例上的routes路由规则数据,对比后台数据后对routes的路由数据进行添加,然后调用router.addRoute方法将最新的路由规则添加到路由实例对象中。

问题: 如果我们重新刷新的话动态路由就会消失,动态路由是在登录成功之后才会调用的,刷新的时候并没有调用,所以动态路由没有添加上

解决: 可以在app.vue中的created中调用添加动态路由的方法。

3.页面按钮的控制
虽然用户可以看到某些界面了, 但是这个界面的一些按钮该用户可能是没有权限的。 因此, 我们需要对组件中的一些按钮进行控制, 用户不具备权限的按钮就隐藏或者禁用, 而在这块的实现中, 可以把该逻辑放到自定义指令中

比如我们可以根据后端返回的数据right来判断用户有什么权限,如下图
在这里插入图片描述
添加自定义指令 控制按钮
在这里插入图片描述
总体思路就是通过自定义指令在其指令内部逻辑实现对后台节点数据的对比判断,并对绑定该指令的元素进行相应操作。
具体实现是通过在自定指令上的action、effect等信息,告诉指令内部,该按钮应具备哪些权限判断条件,比如add,如果后台权限信息有add,那么该用户具有add权限,则指令内部不做逻辑处理,如果没有,则在页面上移除该按钮。其他以此类推。

4.axios请求头的设置
注:req实际上就是请求对象,处理完相应逻辑后必须return出去,否则无法进行请求。

请求控制
除了登录请求都得要带上token , 这样服务器才可以鉴别你的身份
asiox的请求拦截器设置:
在这里插入图片描述
如果发出了非权限内的请求, 应该直接在前端范围内阻止, 虽然这个请求发到服务器也会被拒绝

非权限内的请求:比如a用户是不能够操作该页面的按钮的,但是他通过f12调试把按钮改为可点击,如果我们不对这个请求进行处理,那么这个请求就会发送出
在这里插入图片描述
总体思路就是根据restful的请求方式,设置一个映射函数,在请求头中我们可以通过restful的请求方式来判断该用户在进行哪种操作,再在用户的权限中查找他是否有进行该操作的权限,如果没有就报错。

响应控制
得到了服务器返回的状态码401, 代表token 超时或者被篡改了,此时应该强制跳转到登录界面
在这里插入图片描述

后台管理系统的权限以及vue处理权限的思路 登录功能–>输入用户名和密码–>前端发送用户名和密码–>后端接收到用户名和密码–>找数据库(验证用户名和密码)–验证通过时–>找数据库(用户名—>角色—>功能)–>获取到该用户的功能–>发送给前端–>前端根据获取到的功能,循环显示出该功能。登录功能–>输入用户名和密码–>前端发送用户名和密码–>后端接收到用户名和密码–>找数据库(验证用户名和密码)–验证通过时–>返回前端(同时,返回角色)–>前端根据角色对应的功能权限,展示对应的功能。角色与功能的对应表:这表示的是,什么样的角色具备什么样的功能。 阅读详情

相关推荐

【Vue2项目】人力资源后台管理项目(一)

本项目是 vue2 项目,node版本需降为16版本,可以用 nvm 管理 node 版本,具体可以参考如下博客:【问题解决】Node.js如何升级版本?(内含nvm安装教程)https://blog.youkuaiyun.com/weixin_52047874/article/details/151232233(1) 拉取命令 (2) core-js版本处理:项目模版中的core-js的版本号有些滞后,需要将其版本号改为“3.25.5” 再安装依赖(3) 安装完整依赖 (4) 启动命令在 package.js

这是个栗子的博客 1141

AdminEx后台管理系统模板、用户权限管理设计、按钮级别

本人使用AdminEx模板来设计的用户权限管理系统界面。采用(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)。项目简洁美观、优秀实用、功能强大,可扩展功能多。

weixin_48455733的博客 8471

使用Docker搭建SearXNG搜索引擎

【代码】使用Docker搭建SearXNG搜索引擎。

janthinasnail的博客 1168

后台管理系统--权限管理页面

权限列表

m0_49182632的博客 650

高精度SAR ADC设计实战:从建模到版图的16位1MSPS实现

本文详细介绍了16位1MSPS高精度SAR ADC的设计过程,从建模到版图实现的完整流程。重点探讨了分段电容阵列设计、校准算法实现及版图匹配等关键技术,展示了如何在180nm工艺下实现92.5dB SNDR和109.6dB SFDR的高性能指标。文章特别强调了整数桥接电容设计对提升匹配精度的关键作用,为高精度模数转换器设计提供了实用参考。

weixin_33724046的博客 437

紫光同创PGL50H开发板PCIE通信保姆级教程:从IP核安装到Windows设备管理器识别

本文详细介绍了紫光同创PGL50H开发板PCIE通信的全流程,从IP核安装到Windows设备管理器识别。通过环境搭建、工程配置、管脚约束、固件烧录等步骤,帮助开发者快速掌握FPGA与PCIE通信技术,解决实际开发中的常见问题,提升开发效率。

weixin_30500473的博客 433

后台管理系统: 权限管理

但我们这些操作只是vuex保存当前用户的异步路由,注意,一个用户需要展示完成路由:常量,异步,任意路由,因此我们需要计算出当前用户展示的所有路由。菜单权限:当用户获取用户信息的时候,服务器会把相应的用户拥有菜单的权限信息返回,需要根据用户身份对比出,当前这个用户需要展示哪些菜单。起始不同的用户(角色),登录的时候会向服务器发请求,服务器会把用户相应的菜单的权限的信息,返回给我们。因为没这个路由组件,所以建一个就有了。按钮的权限:不同的用户(角色),有的用户的是可见按钮、当然有的用户不可见。

薛定谔的猫 3292

霍尔编码器 vs 磁编码器:如何为你的电机控制项目选择最佳传感器(附实战对比)

本文深入对比了霍尔编码器和磁编码器在电机控制项目中的应用,从技术原理、性能参数、成本效益到实际场景选择提供了全面分析。通过实验室测试和项目案例,帮助工程师根据精度、环境抗性和预算选择最佳传感器方案,特别适合机器人、伺服驱动等领域的开发者参考。

weixin_28312391的博客 352

Vue-后台管理项目003---权限管理

【代码】Vue-后台管理项目003---权限管理。

初遇我ㄖ寸の热情呢? 595

CF鼠标宏防封指南:手把手教你调校罗技G HUB压枪脚本的延迟与随机数

本文详细解析了如何通过罗技G HUB的Lua脚本功能调校鼠标宏,实现拟真操作体验。重点介绍了随机数应用、动态后坐力补偿和智能操作序列等高级技术,帮助玩家在不违反游戏规则的前提下提升操作精度。

weixin_26841957的博客 334

RH850系列芯片深度剖析 1.5-链接(ld)文件解析

基础编译过程分为四个阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。执行这四个阶段的程序(预处理器、编译器、汇编器、和链接器)一起构成了编译系统。CONSTANTS接下来的内存空间定义部分会使用这些常量来定义内存空间的范围,理论上来说不定义常量也没有影响,直接用魔鬼数字代替,定义常量的主要目的就是方便理解以及方便修改;从示例中可以看出,常量的值可以为16进制或者10十进制,而且10进制支持数量级单位(k级,M级);

本博客专注于嵌入式软件领域技术分享。 1427

vue后台管理项目的登录+权限控制

记录一下自己的思路,也给第一次做这方面的小伙伴提供个思路~~~~ 项目里权限分为页面级权限和按钮级权限,权限表如下图所示: A:页面级权限 1.登录成功后对后端返回的权限数据进行处理:如果用户有多个角色,角色间的权限可能会重复,需要先去重,然后获取页面级的权限,缓存到本地 2.在router下的index.js里定义所有的路由 3.在路由守卫里判断用户是否登录、即将跳转页面的路径是否包含在权限数组里等等情况进行相应的跳转 B:按钮级权限 1.登录成功后将后端返回的所有按钮级..

sinat_38628334的博客 1333

一个代码循环计算水在石墨烯表面的接触角

石墨烯接触角

Rockyoung 2578

动态后台获取_后台管理系统的权限以及vue处理权限的思路

一般来说,在(后台)管理系统(最早的企业级的项目和网站的后台管理系统现在大部分人都叫后台管理系统)中才会有权限之说。权限分为功能级权限和数据级权限。这篇文章主要谈论功能级权限。一、名词解释:权限的意思不用再做解释。功能级权限:表示不同的角色(或者用户)进入系统后,看到的功能不一样,或者说,可以操作的功能不一样。有的系统的处理思路是:不能操作的功能就根本不会让你看到;有的系统的处理思路是:你可以看见...

weixin_39641463的博客 335

前端使用二开Thingsboard一、二、三事(三)-规则链

以项目实战为基础,逐步介绍前端在thingsboard系统二次开发中的一些注意事项以及一些thingsboard一些页面功能讲解,为前端人员开发使用thingsboard提供一种可靠思路,打造一个完美的物联网系统。

weixin_43163457的博客 863

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

后台管理系统的权限以及vue处理权限的思路_vue router 通过后端权限引入组件

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】时,路由配置就会丢失掉。以上步骤是经过测试通过的。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

2301_82243603的博客 829

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

vue后台管理之动态加载路由

在这里我们将会实现一个vue动态路由的案列,当用户登陆成功后,根据用户的角色,拿到他对应的菜单信息,并将它动态的载入到我们的路由中。 我们的通用的后台管理系统中,我们会根据权限的粗细不同,会对每个角色每个权限每个资源进行控制。同样的我们也需要实现一个这样的功能。 这篇文章我将主要讲vue端的实现,关于后台接口我就不会涉及,当我接触的时候我们的后台接口是springcloud实现。 ...

余空啊的博客 4万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

后台管理系统 - 权限设计

一、前言 对于前端项目特别是中后台管理系统项目,权限设计是最复杂的点之一。 一般来说权限设计需要后端来把关,毕竟相对来说前端是无法保证安全的,前端的代码和数据请求都可以伪造。而前端的权限设计更多是为了用户体验的考虑。前端保证体验,后端保证安全。 由于前后端的开发差异和侧重点不同,在权限设计上也不一样。后端更多的是根据功能对象划分不同的权限模块,针对接口相应进行权限判断;而前端更多是针对页面路由进行模块划分,针对页面可访问进行判断。 接下来将以后台管理系统为例,分享个人对前端权限设计的见解。 (具体内容尽量做

醉逍遥neo的博客 1万+

vue 中后台管理系统的权限管理实现逻辑记录

公司的后台系统中有这样一个功能,不同的用户可以访问不同的内容,也就是每个用户的权限不同,即角色的权限管理。感觉这个功能很有价值,所以自己调研了一下,把这个功能的实现方法记录下来,以备不时之需。 场景重现: 现有一个后台管理系统,共存在两种类型的人员 ①超级管理员(称作admin),②普通用户(称作editor) 每种类型的人看到的操作栏并不一样,可以进行的操作也不尽相同,于是就需要程序处理一下各个权限问题。 具体实现思路 1 创建vue实例的时候将vue-router挂载,但这个时候vue-router

sinat_33255495的博客 3230

vue实现后台管理系统的权限管理的思路和主要实现步骤

首先要明白权限管理的究竟是要做什么, 说白了其实就是不同的管理员登录之后看到的页面是不一样 超级管理员往往权限很大很多功能都能看见和操作,包括用户的删除和增加 而普通的管理员往往只是具有查看功能 俩者登录之后要看到不一样的效果这就是权限管理的最终样子 这个往往最直接的就是管理系统左侧的菜单 超级管理员看到的菜单内容最丰富了,普通的用户就相对单调了些 我们权限管理就是根据这个...

业余前端的职业经历 4885

vue前后端分离后台管理系统(权限管理,登录),对接后端SpringSecurity,实现权限管理功能

文章目录一、重要知识点总结以及登录功能实现二、权限管理菜单的增删改查1. 路由配置2. 用户管理功能2.1 后端接口API介绍2.2 前端api接口

殷志鹏的博客 1万+

Vue后台管理系统权限动态路由,根据不同用户渲染不同的路由

Vue后台管理系统权限动态路由 该项目搭建的框架使用的是vue+ant-pro,这里说一下大概思路和流程 **1.首先路由的地方应该分为两块,一块是不需要权限就可以直接登录看到的(看具体需求,也可以一快),一块是需要动态加载的路由信息集合 ** 动态路由里面的meta属性里面需要一个字段用来放权限(和登录是后台返回的权限key一样) 然后的思路是登录的时候后台会根据这个账号返回他对应的权限信息,返回权限路由/或者权限key然后拿到这一组权限id和我们的动态路由去做筛选,赛选出对应的路由,然后把这路由添加

qq_45645051的博客 7526

vue后台管理系统权限控制

vue权限控制 在Web系统中,权限很久以来一直都是后端程序所控制的,为什么呢?因为Web系统的本质围绕的是数据,而和数据库最紧密接触的是后端程序,所以在很长的一段时间内,权限一直都只是后端程序需要考虑的话题,但是随着前后端分离架构的流行,越来越多的项目也在前端进行权限控制 1.权限相关概念 1.1权限的分类 后端权限 从根本上讲前端仅仅只是视图层的展示,权限的核心是在于服务器中的数据变化,所以后端才是权限的关键,后端权限可以控制某个用户是否能够查询数据,是否能够修改数据等操作 1.后端如何知道该请求是哪个

qq_42401946的博客 2327
上一篇: egg.js后台流程记录2
下一篇: js时间差计算
cloudgaps
博客等级 码龄6年 11粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值