【发布时间】:2021-10-27 15:57:39
【问题描述】:
我已经声明了一个中间件来检查 nuxt.config.js 中每个路由的角色。但想在某些页面禁用。
// in nuxt.config.js =>
router: {
middleware: ['role']
},
// in middleware/role.js =>
export default function ({app}) {
if (!window.localStorage.getItem('auth.token')) {
//app.router.push('/auth/login');
console.log('middleware');
}
}
// in login.vue =>
export default {
role: false,
}
// in root page =>
export default {
role: false,
middleware({app}){
if (!window.localStorage.getItem('auth.token')) {
app.router.push('/auth/login');
}
},
}
当令牌为空并重定向用户时,页面会一次又一次地加载,所以我评论此重定向并控制台记录一条消息,以检查发生了什么。 此角色中间件正在加载到角色中间件设置为 false 的页面上。 检查下面的图片。
在这里您可以看到中间件打印了两次,一个用于 root('/'),另一个用于登录页面(这里我禁用了角色中间件)。如何禁用这个中间件到这个登录页面。
【问题讨论】:
-
您可以检查中间件中的 route.path 并在此变量等于您的路径时返回。
标签: nuxt.js vue-router middleware nuxt-auth