结语端点未通过护照验证

问题描述 投票:1回答:1

我的代码在下面,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());
      }
    });
  // }); 
})
express passport.js sequelize.js epilogue
1个回答
1
投票

确保您在中间件功能中返回承诺。看起来你正在这样做,但它已经划掉了。

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);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.