фикс
This commit is contained in:
parent
d1346c59d1
commit
c327810970
@ -105,13 +105,52 @@ const loginUser = async (req, res, next) => {
|
|||||||
try {
|
try {
|
||||||
const { email, password } = req.body;
|
const { email, password } = req.body;
|
||||||
|
|
||||||
console.log('Попытка входа с email:', email);
|
console.log('Попытка входа с email/логином:', email);
|
||||||
|
|
||||||
if (!email || !password) {
|
if (!email || !password) {
|
||||||
res.status(400);
|
res.status(400);
|
||||||
throw new Error('Пожалуйста, укажите email и пароль.');
|
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();
|
const normalizedEmail = email.toLowerCase();
|
||||||
console.log('Нормализованный email для поиска:', normalizedEmail);
|
console.log('Нормализованный email для поиска:', normalizedEmail);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user