const router = new Router({
routes: [
{ path: '/', redirect: '/login' },
{ path: '/login', component: Login },
{
path: '/home',
component: Home,
redirect: '/welcome',
children: [
{ path: '/welcome', component: Welcome },
{ path: '/users', component: Users },
{ path: '/goods', component: GoodsList },
{ path: '/goods/add', component: Add },
{ path: '/orders', component: Order },
{ path: '/reports', component: Report }
]
}
]
})
// 挂载路由导航守卫,控制访问权限
router.beforeEach((to, from, next) => {
// 如果用户访问登录页,直接放行,next
if (to.path === '/login') {
return next()
}
// to 将要访问的路径
// from 代表从哪个路径跳转而来
// next 是一个函数,表示放行
// next() 放行 next('/login') 强制跳转
// 用户不是访问登录页 获取浏览器sessionStroage中的token
const tokenStr = window.sessionStorage.getItem('token')
if (!tokenStr) { // 不存在 转跳至登录页面
return next('/login')
} else { // 存在 放行
return next()
}
})
export default router
vue挂载路由导航守卫,控制访问权限
最新推荐文章于 2023-06-01 13:33:17 发布