Помогите пожалуйста, понят что я делаю не так. Всё время получаю 'Login failed'
passport.use(new LocalStrategy({
usernameField: 'email',
passwordField: 'password',
session: false
},
function (email, password, done) {
User.findOne({email}, (err, user) => {
if (err) {
return done(err);
}
if (!user || !user.checkPassword(password)) {
return done(null, false, {message: 'Нет такого пользователя или пароль неверен.'});
}
return done(null, user);
});
}
)
);
const jwtOptions = {
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: jwtsecret
};
passport.use(new JwtStrategy(jwtOptions, async (payload, done) => {
await User.findById(payload.id, (err, user) => {
if (err) {
return done(err)
}
if (user) {
done(null, user)
} else {
done(null, false)
}
})
})
);
router.post('/users/login', async (ctx, next) => {
const user = await User.findOne({
where: {username: ctx.request.body.username}})
await passport.authenticate('local', function (err, user) {
//от куда берется user? и почему всегда возвращает false?
if (user == false) {
ctx.body = "Login failed";
} else {
const payload = {
username: user.username,
};
const token = jwt.sign(payload, jwtsecret);
ctx.body = {user: user.username, token: 'JWT ' + token};
}
})
(ctx, next)
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости