Попытка реализовать стратегию местного паспорта в Коа 2, но я что-то жизненно не хватает ...Коа 2 + паспорт + асинхронной
Когда мой маршрут попадает passport.authenticate(), я могу получить мой пользователь, но я никогда не вернусь от этого ожидания(), поэтому мой код не продвинется дальше.
Auth:
passport.use(new LocalStrategy(async(username, password, done) => {
console.log('AUTHENTICATING!');
try {
let user = await User.findOne({username:username});
if(user) {
console.log('USER FOUND - DONE');
done(null, user);
} else {
console.log('USER NOT FOUND - DONE');
done(null, false);
}
} catch (err) {
throw err;
}
}));
маршруты
router.post('/login', bodyParser(), async(ctx, next) => {
try {
await passport.authenticate('local')(ctx,next);
console.log('I NEVER MAKE IT TO THIS POINT');
} catch (err) {
throw err;
}
});
Так что мои удары кода ('USER НАЙДЕНО - DONE') ... но я никогда не достичь 'Я никогда не делаю это к этому пункту' в маршрут. Попробовали переключить несколько вещей, поэтому я уверен, что это может быть что-то действительно глупо, я не прав.
Я думаю, что часть моей проблемы может заключаться в том, что passport.authenticate() фактически не возвращает обещание. Можете попробовать обернуть его в co() –
Вы используете https://github.com/rkusa/koa-passport? – laggingreflex
Yup, используя также тег @next. Проблема в том, что сам паспорт еще не возвращает обещаний, поэтому вам нужно вернуть его самостоятельно. –