我正在使用以下技术
我将x-access-token
存储在localstorage
。
当用户访问网站www.example.com
时,vuejs
组件会执行以下操作
通过调用身份验证终结点验证用户是否已登录
如果经过验证,则会重定向到www.example.com/controlpanel
当然,问题是加载vuejs
组件需要一段时间,因此页面加载后来被重定向。
有没有办法以更清洁的方式处理上述场景。使用ngnix
偶数?
由于
答案 0 :(得分:1)
在访问主页时呈现的组件(根路由/
)
添加beforeRouteEnter()
导航防护,如下所示:
//in root route component options
beforeRouteEnter(to, from, next){
myAjax.get('/auth').then((res) => {
if(res.data.user){
//user logged in
next('/controlpanel');
}else{
next('/');
}
});
}
在呈现路径组件之前调用此保护,并且只有在您调用next()
时才会被确认并呈现
请记住,由于尚未创建组件,因此无法访问组件的vue实例
要获得beforeRouteEnter()
内的实例,请执行以下操作:
beforeRouteEnter(to, from, next){
next(vm => {
//acess the component's instance using vm
}
}
有关详细信息,请查看In-Component Guards