Всем привет. Помогите пожалуйста разобраться. При логине Employees все проходит хорошо, но пытаюсь залогинить Customers, переменная user не проходит проверку и выдает 'Credentials are not valid'. хотя данные валидные передаю. Плюс ко всему возвращает ошибку " Cannot set headers after they are sent to the client"
const login = async (req, res, model) => {
const { email, password } = req.body;
if (!email || !password) {
return res.status(400).json({
message: 'Incorrect payload'
});
}
const user = await model.getUser({ '
emails.email': email });
if(!user) return res.status(400).send('Credentials are not valid');
const validPass = await
bcrypt.compare(password, user.password);
if(!validPass) return res.status(400).send('Credentials are not valid');
const result = await updateTokens(user._id);
return result;
};
export const signIn = async (req, res) => {
try {
const resultEmployees = await login(req, res, Employees);
if(resultEmployees.accessToken) {
const { accessToken } = resultEmployees;
req.session.user = { accessToken };
res.header({
'X-Token':
Bearer ${ accessToken }
});
res.status(204).json({ message: 'Logged in' });
} else {
const resultCustomer = await login(req, res, Customers);
const { accessToken } = resultCustomer;
req.session.user = { accessToken };
res.header({
'X-Token':
Bearer ${ accessToken }
});
res.status(204).json({ message: 'Logged in' });
}
} catch (e) {
return res.status(500).json({ message: 'Some server error' });
}
};