Я использую местный паспорт и express. В моем приложении. js У меня есть:
passport.use(new LocalStrategy(
{ usernameField: 'email' },
function(email, password, done) {
if(users=='') {
return done(null, false, { message: 'Incorrect username.' });
}
users.find((user) => {
user.validPassword = (pwd) => {
// password is plain text for the purpose of practicing
if(pwd===user.password) {
return true;
}
return false;
}
if(user.email!==email) {
console.log("email: " + email)
console.log("user: " + user.email)
return done(null, false, { message: 'Incorrect username.' });
}
if(!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
},
passport.serializeUser(function(user, done) {
done(null, user);
}),
passport.deserializeUser(function(user, done) {
done(null, user);
})
)
})
);
и
app.post('/login',
passport.authenticate('local',
{
successRedirect: '/',
failureRedirect: '/login',
failureFlash: true,
}
));
Когда я регистрируюсь один раз и вхожу в систему, все в порядке. Но когда я регистрируюсь во второй раз и вхожу в систему, отображается ошибка
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
.
Но когда я удаляю успешные и неудачные перенаправления, веб-сайт работает нормально независимо от того, сколько пользователей зарегистрирован (но, конечно, мне нужно вручную перейти на следующую страницу).
Как я могу использовать успешное и неудачное перенаправление, не получая ошибки?
Спасибо