我们有一个路由器全局导航保护,如果用户未登录,它将重定向到登录页面:
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth) {
if (!store.getters.isAuthenticated) {
next('/login');
} else {
next()
}
} else {
next()
}
}
加载Vue应用程序时,我们只想运行一次store.dispatch('autologin')。我们不能将其放在router.beforeEach之前,因为自动登录使用我们的axios配置,该配置再次使用存储。
当我们放入主要组件App.vue
时,将在路由器导航保护之后调用自动登录。
如果我们在main.js中做到这一点,它将起作用
store.dispatch("autologin").then(() => {
new Vue({
store,
router,
render: h => h(App)
}).$mount("#app");
}
);
但这看起来很奇怪。在安装应用程序之前初始化身份验证的最佳位置是什么?