【问题标题】:How to add a redirection in Nuxt router middleware?如何在 Nuxt 路由器中间件中添加重定向?
【发布时间】:2021-04-14 06:31:05
【问题描述】:

我创建了一个中间件来检查新用户电子邮件是否已验证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 middleware


    【解决方案1】:

    我已经在 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');
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 2020-07-15
      • 2015-09-28
      • 2022-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多