创建页面之前未触发Vue JS中间件

时间:2019-03-24 04:34:27

标签: javascript vue.js nuxt.js

我当前正在使用以spa模式运行的Nuxt

nuxt.config.js

mode: 'spa',
router: {
  middleware: 'check-auth'
}

然后在我的中间件/检查身份验证

我正在检查本地存储中是否存在auth密钥,然后将用户重定向到根/,否则重定向到/login

export default function ({ store, redirect }) {
  if (process.client) {
     if (localStorage.getItem('auth')) {
       console.log('authenticated');
       return redirect('/'); // authenticated, redirect to root
     } else {
       console.log('not authenticated');
       return redirect('/login'); // redirect to /login
     }
  }
}

在我的 index.vue

<template>
  <div>
    <h1> This is Authenticated Page </h1>
  </div>
</template>

<script>
 export default {
   created() {
      axios.get('/users')
        .then(response => {
           commit('SET_USERS', response.data)
        })
        .catch(error => {
           console.log(error)
        });
   }
 }
</script>

但是,每当我第一次加载页面localhost:3000时,它都会首先从创建的生命周期中触发API请求。它应该转到/login

0 个答案:

没有答案