При проверке информации о членах через sql ошибка не возникает, если в части done один или два раза присутствует тег ha sh. Однако, если вы добавите выполненную часть 3 ниже как оператор else, появится сообщение «ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту». Есть решение?
app.get('/login', (req, res) => {
res.render('login');
});
passport.serializeUser(function(user, done) {
done(null, user.key);
});
passport.deserializeUser(function(id, done) {
let sql = 'SELECT * FROM users';
conn.query(sql, (err, users) => {
for (let i = 0; i < users.length; i++) {
if(users[i].key === id) {
return done(null, users[i]);
}
}
});
});
/* passport local callback */
passport.use(new LocalStrategy(
function (username, password, done) {
let uid = username;
let pwd = password;
/* Check member information */
let sql = 'SELECT * FROM users';
conn.query(sql, (err, users) => {
for (let i = 0; i < users.length; i++) {
if(uid === users[i].id) {
if(pwd === users[i].password) {
done(null, users[i]); // *** 1 ***
} else {
done(null, false); // *** 2 ***
}
} else {
done(null, false); // here is the error *** 3 ***
}
}
})
}
));
/* passport local login */
app.post('/login',
passport.authenticate(
'local',
{
successRedirect: '/friends',
failureRedirect: '/login',
failureFlash: true
}
)
);