美文网首页Vue
Vue设置路由拦截

Vue设置路由拦截

作者: 隔壁老樊啊 | 来源:发表于2019-12-07 18:30 被阅读0次

路由守卫

在Vue中分为全局前置守卫 router.beforeEach ,和全局后置钩子 router.afterEach,相对应的说明可以查看官网。路由守卫我们一般用来拦截路由请求,对不同的路由进行不同处理。最常见的就是配合axios对用户登录进行一个权限操作。

拦截规则

通常在项目里,我们需要用户进行登录,才能让用户查看项目。在后台管理系统中,会根据不同的用户权限展示不同的内容。

在用户访问页面之前,我们通过全局前置守卫对路由进行拦截,看看你是不是可以通过。通过的标准是否登录,如果登录就通过放行,没有通过就打回。打个比方:你下班开车要回家,路上有交警查车,交警问:同志,请出示驾驶证行驶证,如果你没有,就不能回家,交警叔叔肯定要带你回去问话。如果你有驾驶证,就可以回家。路由拦截就起到交警查证的作用,只不过每个项目检查的标准可能不一样。

上代码

  • router.js 如果是vue-cli4.x版本是在router文件夹下面index.js
// 不需要路由验证页面 
const whiteList = ['login', 'index']

router.beforeEach((to, from, next) => {
    // 确定用户是否已登录  
    const hasToken = false  // 这里就是路由是否通过标准,一般都是通过token来验证

    if (hasToken) {   // 登录
      if (to.path === '/login') {  
        // 如果已登录,请重定向到主页
        next({ path: '/index' })
        return
      } 
      next()
    } else {
      if (whiteList.indexOf(to.name) !== -1) {
        // 在免费登录白名单中,直接进入
        next()
      } else {
        // 没有访问权限的其他页将重定向到登录页。
        next(`/login`)
      }
    }
  
})
  • 需要注意的一点是,用户没有登录,是需要跳转到登录页面,如果在白名单里面没有登录页或者没有next(),页面一直跳转直到内存溢出。

  • 每个项目的验证是否拥有权限不一样,权限判断那一块可以根据自己的实项目需求来进行操作。

相关文章

  • Vue设置路由拦截

    路由守卫 在Vue中分为全局前置守卫 router.beforeEach ,和全局后置钩子 router.afte...

  • vue+axios 实现登录拦截权限验证

    vue+axios 前端实现登录拦截(路由拦截、http拦截) 一、路由拦截 登录拦截逻辑 第一步:路由拦截 首先...

  • vue+axios 实现登录拦截权限验证

    vue+axios 前端实现登录拦截(路由拦截、http拦截) 一、路由拦截 登录拦截逻辑第一步:路由拦截首先在定...

  • vue接口拦截

    接口拦截 路由拦截 接口拦截应该指的是 http 请求拦截路由拦截是 vue 这种框架里的拦截登录拦截是一个需求,...

  • Vue2门户项目 | 开发过程记录

    本文目录: 1.自动生成的环境变量 2.vue-cli的版本升级 3.路由高亮丢失问题 4.设置全局路由守卫拦截非...

  • 关于vue实现路由拦截登陆判断跳转对应的页面

    关于vue实现路由拦截登陆判断跳转对应的页面

  • Vue 路由拦截

    路由拦截应用场景 如图所示,当我们进入一个webapp时,点到我的,表示进入个人中心,但是此时用户是首次使用的话,...

  • 通过JS拦截 pushState 和 replaceState

    写在前面前几天遇到一个需求,原生js拦截vue项目中的路由变更。目的是单项目应用中,拦截路由变更,发送用户路由变更...

  • Vue.js路由

    1.设置路由 ① 路由map 在main.js中导入vue-router 设置全局路由 实例化router ②路由...

  • Vue-在vue中如何使用vue-router

    vue-router作为vue的生态系统一员,帮我们解决了项目中路由的相关问题,包括路由切换,路由拦截等问题。此文...

网友评论

    本文标题:Vue设置路由拦截

    本文链接:https://www.haomeiwen.com/subject/wsiugctx.html