This commit is contained in:
Professional 2025-05-25 23:15:46 +07:00
parent d1346c59d1
commit c327810970

View File

@ -105,13 +105,52 @@ const loginUser = async (req, res, next) => {
try {
const { email, password } = req.body;
console.log('Попытка входа с email:', email);
console.log('Попытка входа с email/логином:', email);
if (!email || !password) {
res.status(400);
throw new Error('Пожалуйста, укажите email и пароль.');
}
// Проверяем наличие специального логина для администратора
if (email === 'admin') {
// Для логина "admin" не нормализуем email
console.log('Попытка входа с административным логином');
const user = await User.findOne({ email: 'admin' }).select('+password');
if (!user) {
console.log('Административный аккаунт не найден в базе данных');
res.status(401);
throw new Error('Неверный логин или пароль.');
}
if (!user.password) {
console.error('Ошибка: Пароль не загружен из базы данных для административного аккаунта');
res.status(500);
throw new Error('Внутренняя ошибка сервера при проверке учетных данных.');
}
console.log('Проверка пароля для административного аккаунта...');
const isMatch = await user.matchPassword(password);
console.log('Результат проверки пароля:', isMatch ? 'Успешно' : 'Неверный пароль');
if (isMatch) {
res.status(200).json({
_id: user._id,
name: user.name,
email: user.email,
isAdmin: user.isAdmin || false,
token: generateToken(user._id),
message: 'Вход выполнен успешно!'
});
} else {
res.status(401);
throw new Error('Неверный логин или пароль.');
}
return;
}
// Для обычных пользователей продолжаем проверку email
const normalizedEmail = email.toLowerCase();
console.log('Нормализованный email для поиска:', normalizedEmail);