通过 nuxt 中间件根据用户的角色重定向用户
Redirect user based on their role via nuxt middleware
我想通过 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')
}
}
the screenshot of browser console
重定向是一种全新的页面加载,就像您第一次访问某个页面或在该页面上按 F5 一样。由于你在这里做一些条件,它总是会进行重定向,Vue 应用程序将加载,在无限循环中再次调用中间件。
创建一个 router.push
或检查初始页面是否不是您在 重定向之前 已经在的页面(IMO 不是最好的主意)。
更新答案
在中间件上下文中,如果要访问路由器,需要使用这个
<script>
export default {
middleware({ app }) {
if (somethingTrue) { // your condition here
app.router.push('/')
}
},
}
</script>
我想通过 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')
}
}
the screenshot of browser console
重定向是一种全新的页面加载,就像您第一次访问某个页面或在该页面上按 F5 一样。由于你在这里做一些条件,它总是会进行重定向,Vue 应用程序将加载,在无限循环中再次调用中间件。
创建一个 router.push
或检查初始页面是否不是您在 重定向之前 已经在的页面(IMO 不是最好的主意)。
更新答案
在中间件上下文中,如果要访问路由器,需要使用这个
<script>
export default {
middleware({ app }) {
if (somethingTrue) { // your condition here
app.router.push('/')
}
},
}
</script>