如果我直接进入登录页,然后在登录页输入其他页面url,拦截是成功的。
但是如果我第一次没有进入登录页, 直接在url地址栏输入历史记录,进入里面的需要拦截的页面 居然可以直接进入
求解决 ,相关代码如下:
     router.beforeEach((to, from, next) => {
     
    
if (to.matched.some(record => record.meta.requireAuth)) { // 判断该路由是否需要登录权限,能检测出带参数的路由
if (sessionStorage.getItem(‘sender’)) { // 通过vuex state获取当前的token是否存在
next()
     } else {
     
    
     next({
     
    
path: ‘/’,
query: {redirect: to.fullPath} // 将跳转的路由path作为参数,登录成功后跳转到该路由
})
}
     } else {
     
    
next()
}
})
index.js:
     export default new Router({
     
    
     routes: [{
     
    
path: ‘/’,
name: ‘login’,
component: Login,
meta: { requireAuth: false // 添加该字段,表示进入这个路由是需要登录的
}
     }, {
     
    
path: ‘/main’,
name: ‘main’,
meta: { requireAuth: true
},
component: Main,
children: [
{ path: ‘/share’,
meta: { requireAuth: true
},
component: Share }
]
}]
})
 
