代码之家  ›  专栏  ›  技术社区  ›  Shamoon

未使用passport验证尾声终结点

  •  1
  • Shamoon  · 技术社区  · 7 年前

    下面是我的代码 auth complete 从不触发。我不知道为什么,因为这是直接从尾声文件。

    dataplan.list.auth((req, res, context) => {
      console.log('authenticating')
      // return new Promise(function(resolve, reject) {
        console.log('auth with passport')
        passport.authenticate('jwt',{session: false}, function(err, user, info) {
          console.log('auth complete')
          if(err) {
            res.status(500);
            resolve(context.stop());
          }
    
          if(user) {
            resolve(context.continue());
          } else {
            context.error(new ForbiddenError());
          }
        });
      // }); 
    })
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   mcranston18    7 年前

    确保在中间件功能中返回承诺。看起来你在做这件事,但把它划掉了。

    dataplan.list.auth((req, res, context) => {
      return new Promise(resolve => {
        passport.authenticate('jwt', (err, user, expiry) => {
          if(err) {
            res.status(500);
            return resolve(context.stop());
          }
    
          if(user) {
            resolve(context.continue());
          } else {
            return resolve(context.error(new ForbiddenError()));
          }
        })(req, res);
      });
    });
    
    推荐文章