如何在 Nuxt 路由器中间件中添加重定向?
How to add a redirection in Nuxt router middleware?
我创建了一个中间件来检查新用户电子邮件是否已经过验证middleware/verify_email.js
:
export default function (context) {
if (context.$auth.loggedIn && !context.$auth.user.email_verified_at) {
console.log('logged in with email not verified');
return context.redirect('/auth/verify');
}
}
然后,我在nuxt.config.js
中全局设置了这个中间件:
router: {
middleware: ['auth', 'verify_email']
},
但我似乎陷入了无限循环,页面没有响应。我一评论重定向行,它就会再次响应。
NavigationDuplicated: Avoided redundant navigation to current location: "/auth/verify".
我可能需要为页面 auth/verify
添加一个例外到这个中间件,但我不知道如何做。
知道我应该如何解决这个问题吗?
我已经在Nuxt.js
中做了一个类似的授权中间件
如果是'/auth/verify'
路由就得跳过中间件,如下:
export default function (context) {
if (context.route.name === "auth-verify")
// skip middleware
return
}
if (context.$auth.loggedIn && !context.$auth.user.email_verified_at) {
console.log('logged in with email not verified');
return context.redirect('/auth/verify');
}
}
我创建了一个中间件来检查新用户电子邮件是否已经过验证middleware/verify_email.js
:
export default function (context) {
if (context.$auth.loggedIn && !context.$auth.user.email_verified_at) {
console.log('logged in with email not verified');
return context.redirect('/auth/verify');
}
}
然后,我在nuxt.config.js
中全局设置了这个中间件:
router: {
middleware: ['auth', 'verify_email']
},
但我似乎陷入了无限循环,页面没有响应。我一评论重定向行,它就会再次响应。
NavigationDuplicated: Avoided redundant navigation to current location: "/auth/verify".
我可能需要为页面 auth/verify
添加一个例外到这个中间件,但我不知道如何做。
知道我应该如何解决这个问题吗?
我已经在Nuxt.js
中做了一个类似的授权中间件如果是'/auth/verify'
路由就得跳过中间件,如下:
export default function (context) {
if (context.route.name === "auth-verify")
// skip middleware
return
}
if (context.$auth.loggedIn && !context.$auth.user.email_verified_at) {
console.log('logged in with email not verified');
return context.redirect('/auth/verify');
}
}