Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue.js路由保护问题_Javascript_Vue.js_Vuejs2_Vue Router - Fatal编程技术网

Javascript Vue.js路由保护问题

Javascript Vue.js路由保护问题,javascript,vue.js,vuejs2,vue-router,Javascript,Vue.js,Vuejs2,Vue Router,我设置了一个路由守卫,检查路由是否为访客(登录和注册路由),是否为访客,用户是否经过身份验证,重定向到仪表板。然而,这有时有效,有时无效 router.beforeEach((to,from,next)=>{ if (to.matched.some(record => record.meta.forGuests)) { if (auth.quickCheck()) { console.log('should redirect now'

我设置了一个路由守卫,检查路由是否为访客(登录和注册路由),是否为访客,用户是否经过身份验证,重定向到仪表板。然而,这有时有效,有时无效

router.beforeEach((to,from,next)=>{

    if (to.matched.some(record => record.meta.forGuests)) {
        if (auth.quickCheck()) {
            console.log('should redirect now')
            next({name:'dashboard'});
        } else next()
    }
    next();
});
这是我的警卫。我总是收到
console.log
消息,但由于某些原因,它并不总是重定向。当我更改“现场”路线时,就会发生此问题。Vue路由器正在接收它,但没有重定向它应该如何。。。 例如,这是我的登录路径

  {
      path: '/login',
      name: 'login',
      component: require('./views/Login.vue'),
      meta:{
        forGuests: true
      }
    },
这里的主要问题是它有时会起作用。例如,这是my console.log:

should redirect now
Component mounted.
should redirect now

在安装寄存器组件时,正在安装组件。正如您第一次看到的,当我更改为
/login
时,我得到了应该重定向和组件挂载(它确实重定向了我),而下一次我得到了应该重定向并保持在/login

上,您说:当我更改路由“live”时,这个问题就发生了。。你这是什么意思?@user7814783在browserOK中更改路径现在我明白了。我也面临这个问题。当您直接在浏览器的搜索中搜索受保护的路径时,将重新呈现(刷新)vue应用程序。您正在使用
auth.quickCheck()
检查用户是否经过身份验证。您正在将用户的身份验证状态保存为
var
object
,根据用户是否登录,将其保存为
true
false
。在浏览器搜索中直接搜索或路由时,存储用户身份验证状态的
var
对象被设置回初始状态,即
false
。我建议您将用户的身份验证状态存储在cookie中。然后,您可以检查Cookie的值以确定用户是否登录。这样,您就不必担心页面刷新会将身份验证状态更改回false。@VAMSIKRISHNA是的,这就解决了问题。谢谢