我创建了一个中间件来检查新用户电子邮件是否已验证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:避免了对当前位置的冗余导航:"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');
}
}