vue-router-使用router.beforeEach时在何处放置自动登录

时间:2019-02-15 15:37:11

标签: vue.js vue-router

我们有一个路由器全局导航保护,如果用户未登录,它将重定向到登录页面:

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");
    }
);

但这看起来很奇怪。在安装应用程序之前初始化身份验证的最佳位置是什么?

0 个答案:

没有答案