页面鉴权:
1.通常需求鉴权页面通过路由设置meta
2.路由守卫:拦截要跳转的路由有没有meta为auth标识
思路:跳转到登录页时,将要访问的页面地址当作参数传给登录页,登录成功后,再跳回原页面
代码如下:
//路由守卫
router.beforeEach((to,from,next) => {
console.log('to:', to)
//第一步:是否需要鉴权
let flag = to.matched.some(item => item.meta.auth)
if (flag) {
//第二步:获取token
const token = sessionStorage.getItem('token');
if (!token) {
return next({
//要跳转的路由
path: '/login',
//通过query携带要传递的参数,query是一个对象
query: {
redirect:to.fullPath
}
})
}
//有token,就直接放行
next()
} else {
next()
}
})
在组件中:
let {redirect}=this.$route.query
this.$router.push({path:redirect})