下面是我的代码 auth complete 从不触发。我不知道为什么,因为这是直接从尾声文件。
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()); } }); // }); })
确保在中间件功能中返回承诺。看起来你在做这件事,但把它划掉了。
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); }); });