欢迎来到BlackTest-老王自动化测试

Vue路由导航守卫控制页面访问权限

 

复制代码
import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/login.vue'
import Home from '../components/Home.vue'


Vue.use(VueRouter)

const routes = [{
    path: '/',
    redirect: "/login"
  }, {
    path: '/login',
    component: Login
  }, {
    path: '/home',
    component: Home
  }

]

const router = new VueRouter({
  routes
})


//挂载路由守卫
router.beforeEach((to, from, next) => {
  //to要跳转的路径
  //from代表从那个路径跳转而来
  //next是一个函数,表示放行
  //next() 直接放行   next('/login')  表示强制跳转

  //如果用户访问登录页,不用判断,直接放行
  if (to.path === '/login') return next();

  //获取token
  const tokenStr = window.sessionStorage.getItem("token");

  //如果没有token 就证明没有登录,就强制跳转到登录页
  if (!tokenStr) return next('/login');

  //如果token存在,就直接放行
  next();

});

export default router
复制代码

 

 

本人存档:

复制代码
router.beforeEach((to, from, next) => {
    document.title = `${to.meta.title} | 测试`;
   if (to.meta.requireAuth === false) return next();

   const role = localStorage.getItem('ms_username');

   if (to.meta.requireAuth === true){
       if (!role) return  next('/login')

       next()


   }
复制代码

 

posted @   BlackTest  阅读(139)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示