【问题标题】:Cannot handle error thrown in the JWTStrategy callback无法处理 JWTStrategy 回调中抛出的错误
【发布时间】:2019-06-08 17:23:45
【问题描述】:

我已经设置 JwtStrategy 来验证我的 api 端点。如您所见,如果jwtPayload.expires > Date.now(),我会抛出自定义JWTExpired 错误,如果您在catch 块上控制台错误,它会,然后代码将再次抛出相同的错误并使应用程序崩溃。我使用了与LocalStrategy 相同的结构来抛出自定义PasswordNotMatch 错误,它在那里工作得很好。

passport.use(
  new JWTStrategy(
    {
      jwtFromRequest: req => {
        return req.cookies.jwt;
      },
      secretOrKey: secret
    },
    (jwtPayload, done) => {
      try {
        if (jwtPayload.expires > Date.now()) {
          return done(null, jwtPayload);
        } else {
          throw new JWTExpired();
        }
      } catch (error) {
        console.log(error);
        return done(error);
      }
    }
  )
);

【问题讨论】:

    标签: javascript express jwt passport.js passport-jwt


    【解决方案1】:

    我自己找到的。我没有处理路由错误,所以当 JWT 过期时,护照.js 重新抛出了我通过 done(error) 传递的错误;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-25
      • 2021-02-08
      • 2021-11-04
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多