使用vue-router提供的router.beforeEach来注册一个全局路由拦截
router.beforeEach(async (to, from, next) => {
const _to = JSON.parse(localStorage.getItem('_to'));
//不需要登录的直接放行
if (to.meta.requiresAuth === false) {
next()
//如果页面需要登录,且登录失效,进入登录页面
} else if (!_to && to.path !== '/login') {
next({
path: '/login'
})
} else {
next()
}
})
就是一个判断localStorage中是否存有token值,没有token就跳转到登录页面,当然,也可以存在sessionStorage中