页面权限控制

页面权限控制是什么意思呢?

就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的。如果一个页面,有角色越权访问,这时就得做出限制了。

Vue 动态添加路由及生成菜单这是我写过的一篇文章,

通过动态添加路由和菜单来做控制,不能访问的页面不添加到路由表里,这是其中一种办法。

另一种办法就是所有的页面都在路由表里,只是在访问的时候要判断一下角色权限。如果有权限就让访问,没有权限就拒绝,跳转到 404 页面。

思路

在每一个路由的 meta 属性里,将能访问该路由的角色添加到 roles 里。用户每次登陆后,将用户的角色返回。然后在访问页面时,把路由的 meta 属性和用户的角色进行对比,如果用户的角色在路由的 roles 里,那就是能访问,如果不在就拒绝访问。

代码示例

路由信息

routes: [ { path: '/login', name: 'login', meta: { roles: ['admin', 'user'] }, component: () => import('../components/Login.vue') }, { path: 'home', name: 'home', meta: { roles: ['admin'] }, component: () => import('../views/Home.vue') },]

页面控制

// 假设角色有两种:admin 和 user// 这里是从后台获取的用户角色const role = 'user'// 在进入一个页面前会触发 router.beforeEach 事件router.beforeEach((to, from, next) => { if (to.meta.roles.includes(role)) { next() } else { next({path: '/404'}) }})

登陆验证

网站一般只要登陆过一次后,接下来该网站的其他页面都是可以直接访问的,不用再次登陆。

我们可以通过 token 或 cookie 来实现,下面用代码来展示一下如何用 token 控制登陆验证。

router.beforeEach((to, from, next) => { // 如果有token 说明该用户已登陆 if (localStorage.getItem('token')) { // 在已登陆的情况下访问登陆页会重定向到首页 if (to.path === '/login') { next({path: '/'}) } else { next({path: to.path || '/'}) } } else { // 没有登陆则访问任何页面都重定向到登陆页 if (to.path === '/login') { next() } else { next(`/login?redirect=${to.path}`) } }})

上述首先可以在https://github.com/woai3c/vue-admin-template项目里找到

欢迎大家评论讨论哦,无论你是大神还是小白,都可以私信小编“学习”加群领取前端学习资料哦

vue 前端显示图片加token_Vue 页面权限控制和登陆验证相关推荐

  1. vue 前端显示图片加token_vue+node.js手把手教你搭建一个直播平台(二)

    上一期,帅气的小羽给老铁们介绍了直播平台的项目的后端搭建,这期就让小羽带大家来搭建一下前端的框架. 1.创建前端工程 毫无疑问,搭建一个项目的框架,那第一步肯定是得创建一个工程啦.cmd命令,输入vu ...

  2. vue 前端显示图片加token_手摸手,带你用vue撸后台 系列二(登录权限篇)

    完整项目地址:vue-element-admin https://github.com/PanJiaChen/vue-element-admin 前言 拖更有点严重,过了半个月才写了第二篇教程.无奈自 ...

  3. vue 前端显示图片加token_前端甩锅神器:vue中的mock使用

    首先声明,本文所介绍的方法,只是用于,在做好前端联调的本分工作之余,把前后端联调责任划清界限,并不用于帮后端定位问题(当然,mock也有更全面的方法促进项目的进行,小女不才,在此不提供介绍): 跟陌生 ...

  4. vue 前端显示图片加token_前端Vue3.0:从0到1手把手撸码搭建管理后台系统

    第1节 – 了解项目开发流程 手把手撸码前端 – 第1学时 了解产品从0到1的开发流程,产品经理.UI设计师.研发部.测试工程师 第2节 – 构建vue项目.代码仓库管理 手把手撸码前端 – 第2学时 ...

  5. 前端显示图片加token

    项目开发中,用户权限验证场景比较常见, 但是给图片加验证该如何做呢?这里给出两个思路. 1- 改造用户身份验证方法,通过URL方式传token. 一般情况下用户token是放在header中的,但是i ...

  6. vue页面加载时闪现_如何解决Vue.js显示数据的时,页面闪现

    下面我就为大家分享一篇解决使用Vue.js显示数据的时,页面闪现原始代码的问题,具有很好的参考价值,希望对大家有所帮助. 今天开始学习Vue.js的使用,但是在学习过程中发现一个问题,那就是页面加载数 ...

  7. vue调用接口获取后台数据_使用Vue实现调用接口加载页面初始数据

    使用Vue实现调用接口加载页面初始数据 闲着没事写了一个电影推荐的网页,很简单,使用的是Vue的实现. let vm = new Vue({ el:'#content', data:{ name:'' ...

  8. html网页点击按钮闪现怎么解决,解决使用Vue.js显示数据的时,页面闪现原始代码的问题...

    今天开始学习Vue.js的使用,但是在学习过程中发现一个问题,那就是页面加载数据时,原始代码会闪现一下.查访各方资料,终的解决方法. 第一步.加入一段css代码 [v-cloak] { display ...

  9. bug解决-Vue中img图片加载失败解决方案

    Vue 中img图片加载失败解决方案 bug:assets文件下的图片动态取得话,显示不出来. 解决方法:把图片放到public文件夹下 public是直接原封不动打包到dist里面

  10. WINDOWS10 微软应用商店 microsoft store  打不开  显示无法加载页面

    WINDOWS10 微软应用商店 microsoft store  打不开  显示无法加载页面 确定后就已经生效,不用注销或重启

最新文章

  1. Spring源代码解析(十):Spring Acegi框架授权的实现
  2. 错误linux autocof.h,【技巧】一种提高 [ 定位Linux内核编译错误 ] 效率的方法
  3. mysql与hive2.1.1安装和配置
  4. 【SQL-分组合并字符串】把相同分组的某个字段合并为同一个字符串(使用函数)...
  5. for-each keyword
  6. 弹出键盘,UIView 上移
  7. 查找N个数中第K大的数
  8. java并发执行一个方法_JAVA的执行并发原理
  9. pandas查看两个series、list元素的包含关系(查看一个series的每个元素是否在另一个series中)
  10. glide加载gif图不显示动画_关于glide加载gif问题
  11. OpenCV-通道合并cv::merge
  12. 数字信号处理实验——语音信号的数字滤波
  13. 微信公众平台源码分享,把你的生意做到微信里
  14. 产品规划三板斧:商业画布/精益画布/SWOT分析
  15. 【java1234】java学习路线图2018
  16. “杜拉拉升职记”电影看后感
  17. 李德毅:云计算助大数据价值深挖
  18. 左移 (<<) / 右移 (>>)注意细节
  19. 如何使用沙盘多开流量精灵,流量精灵多开有用吗
  20. 启明星辰信息安全面试

热门文章

  1. 【JMedia】诺贝尔奖得主:东亚教育浪费了太多生命
  2. ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]
  3. python搭建轻服务,实现上传下载文件
  4. python复制excel图片_python批量导出excel区域图片
  5. 软件测试面试中项目介绍宝典
  6. java file数组 初始化_Java之处理数组
  7. android 微信浮窗实现_Android仿微信文章悬浮窗效果
  8. 带管理职位面试中遇到的常见经典问题的回答
  9. 极客空间-MySQL实战45天-第四天
  10. c语言左移函数_corl_,crol(crol函数怎么左移)