2

我想通过 nuxt 中间件根据用户的角色和其他属性重定向用户。

** 重定向发生但卡在导航守卫中,并且页面会一次又一次地自动重新加载(每秒重新加载约 500 次)。

#这是我的代码

nuxt.config.js

router: {
  middleware: ['role']
},

middleware/role.js

export default function ({ redirect }) {
  if (!window.localStorage.getItem('auth.token')) {
    return redirect('/auth/login')
  }
}

浏览器控制台截图

4

1 回答 1

1

重定向是一种全新的页面加载,例如,如果您是第一次到达某个页面,或者您在该页面上按 F5 键。由于您在这里做一些条件,它总是会进行重定向,Vue 应用程序将加载,在无限循环中再次调用中间件。

制作router.push或检查初始页面是否不是您在重定向之前已经在的页面(不是最好的 IMO 想法)。

更新的答案

在中间件上下文中,如果要访问路由器,需要使用这个

<script>
export default {
  middleware({ app }) {
    if (somethingTrue) { // your condition here
      app.router.push('/')
    }
  },
}
</script>
于 2021-08-26T17:28:45.193 回答