Epilogue 端点未使用护照进行身份验证
Epilogue endpoints are not being authenticated with passport
我的代码在下面,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);
});
});
我的代码在下面,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);
});
});