Я не получаю объект пользователя к следующему промежуточному программному обеспечению после успешного прохождения промежуточного программного обеспечения passport.authenticate('local', {session: false})
.Koa v2, получая объект пользователя после входа в паспорт-loca
Вот как выглядит мой код.
В паспортном локальной стратегии
passport.use(new localStrategy((username, password, done) => {
User.findOne({username}, (err, user) => {
if(err) { return done(err) }
if(!user) { return done(err) }
user.comparePasswords(password, async(err, isMatch) => {
if(!isMatch) { return done(null, false) }
done(null, user);
});
});
}));
который я думаю предполагают, чтобы вернуть объект пользователя, если Логин успешно сделано.
Тогда в моих маршрутов У меня есть
const requireAuth = passport.authenticate('local', {session: false});
router.post('/login', requireAuth, signIn);
Как когда я ударил /signin
паспорт промежуточного слоя называется, а затем, когда это сделано signIn
промежуточное программное обеспечение называется то, что я ожидал ,с моим зарегистрированным пользователем объектом.
Но когда я проверить в моем промежуточного слоя для входа в аккаунт ничего не передается (в запросе или ответа) объекта.
Вот мой зарегистрировалось промежуточного
const signIn = async (ctx, next) => {
const res = ctx.response;
const req = ctx.request;
console.log('response', res); //- Nothing from passport
console.log('request', req); //- Nothing from passport
await next();
};
Мне нужно передать вошедшим в системе пользователя с паспорта к следующему промежуточному слою, так что я могу использовать идентификатор пользователя, чтобы сделать JWT.
спасибо.
Я не думаю, что 'const res = wait ctx.response;' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' Я не думаю, что это так, не так ли? –
@ OvidiuDolha нет, это не так, я пытался обычным способом (без 'awaits'), но это тоже не сработало. Lemme исправить код. – ArchNoob