概述
如果我直接进入登录页,然后在登录页输入其他页面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 }
]
}]
})
最后
以上就是高兴小蜜蜂为你收集整理的vue能控制未登陆的请求不能访问url_vue路由钩子登录拦截 关于地址栏直接输入url拦截不成功...的全部内容,希望文章能够帮你解决vue能控制未登陆的请求不能访问url_vue路由钩子登录拦截 关于地址栏直接输入url拦截不成功...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复