vue怎么实现后台管理系统的权限控制


这篇文章主要介绍“vue怎么实现后台管理系统的权限控制”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现后台管理系统的权限控制”文章能帮助大家解决问题。一、前言在广告ji项目中,角色的权限管理是卡了挺久的一个难点。首先我们确定的权限控制分为两大部分,其中根据粒的大小分的更细:接口访问的权限控制页面的权限控制菜单中的页面是否能被访问页面中的按钮(增、删、改)的权限控制是否显示下面我们就看一看是如何实现这些个权限控制的。二、接口访问的权限控制接口权限就是对用户的校验。正常来说,在用户登录时服务器需要给前台返回一个Token,然后在以后前台每次调用接口时都需要带上这个Token,然后服务端获取到这个Token后进行比对,如果通过则可以访问。现有的做法是在登录成功的回调中将后台返回的Token直接存储到sessionStorage,然在请求时将Token取出放入headers中传给后台,代码如下:后来在一些文章中发现axios可以在拦截器中直接将Token塞入config.headers.Authorization中,作为全局传入。下面是代码部分:三、页面权限控制在前面已经说到,页面权限控制又分为两种:菜单中的页面是否能被访问页面中的按钮(增、删、改)的权限控制是否显示这些权限一般是在固定页面进行配置,保存后记录到数据库中。按钮权限暂且不提,页面访问权限在实现中又可以分为两种方式:显示所有菜单,当用户访问不在自己权限内的菜单时,提示权限不足只显示当前用户能访问的权限内菜单,如果用户通过URL进行强制访问,则会直接进入404既然展现出来后不能点,那算几个意思,逗我玩儿呢?所谓眼不见为净,综合考虑后,肯定是方案二比较符合良好的用户体验。好,我们现在梳理一下大致的页面访问权限的流程:在对流程梳理完成后我们开始进行详细的编写。1、创建路由表创建路由表实际上没有什么难度,照着vue-router官方文档给的示例直接写就行了。但是因为有部分页面是不需要访问权限的,所以需要将登录、404、维护等页面写到默认的路由中,而将其它的需要权限的页面写到一个变量或者一个文件中,这样可以有效的减轻后续的维护压力。下面将index.js的代码贴上,异步路由将适量减少,以免占过多篇幅。注意事项:这里有一个需要非常注意的地方就是 404 页面一定要最后加载,如果放在constantRouterMap一同声明了404,后面的所以页面都会被拦截到404,详细的问题见addRoutes when you’ve got a wildcard route for 404s does not work2、页面访问权限在开始时我们梳理了一个大致的页面访问权限流程。下面我们先实现最核心的部分:我们首先获取用户权限列表,在这里我们将接触到vuex状态管理,官方文档有详细介绍,这里就不过多描述了,下面请看代码:好了,我们现在请求后台拿到了权限数据,并将数据存放到了vuex中,下面我们需要利用返回数据匹配之前写的异步路由表,将匹配结果和静态路由表结合,开成最终的实际路由表。其中最关键的是利用vue-router2.2.0版本新添加的一个addRoutes方法,我们看看官方文档如何解释此方法的:router.addRoutes(routes) 2.2.0+ 动态添加更多的路由规则。参数必须是一个符合 routes 选项要求的数组。那我们现在就可以开始使用addRoutes进行路由匹配了。下面看代码:然后我们编写导航钩子到这里我们已经完成了对页面访问的权限控制,接下来我们来讲解一下操作按扭的权限部分。四、数据操作权限是否还记得前面的路由配置中我们多出来的一个代码,下面我们拿出来看看:为每个路由页面增加meta字段。在routerMatch函数中将匹配免费云主机域名到的详细权限字段赋值到这里。这样在每个页面的route对象中就会得到这个字段。接下来我们编写一个vue自定义指令对页面中需要进行鉴权的元素进行判断,比如类似这样的:我们直接注册一个全局指令,利用vnode来访问vue的方法。代码如下:关于“vue怎么实现后台管理系统的权限控制”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: 怎么使用vue定义数组对象

这篇“怎么使用vue定义数组对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用vue定义数组对象”文章吧。1.首先,在vue-cli中创…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/10 20:21
下一篇 02/10 20:22

相关推荐