diff --git a/backend/controllers/authController.js b/backend/controllers/authController.js index ffff881..0eaeb17 100644 --- a/backend/controllers/authController.js +++ b/backend/controllers/authController.js @@ -112,19 +112,19 @@ const loginUser = async (req, res, next) => { throw new Error('Пожалуйста, укажите email и пароль.'); } // Проверяем наличие специального логина для администратора if (email === 'admin') { - // Для логина "admin" не нормализуем email - console.log('Попытка входа с административным логином'); - const user = await User.findOne({ email: 'admin' }).select('+password'); + // Для логина "admin" проверяем аккаунт admin@example.com + console.log('Попытка входа с административным логином через "admin"'); + const user = await User.findOne({ email: 'admin@example.com' }).select('+password'); if (!user) { console.log('Административный аккаунт не найден в базе данных'); console.log('Создание административного аккаунта...'); try { - // Если админ не найден, можно попытаться создать его на месте + // Если админ не найден, создаем его с валидным email const adminUser = new User({ name: 'Администратор', - email: 'admin', + email: 'admin@example.com', // Используем валидный email password: 'admin124', // Пароль будет хеширован pre-save hook dateOfBirth: new Date('1990-01-01'), gender: 'other', diff --git a/backend/utils/createAdmin.js b/backend/utils/createAdmin.js index f83cb41..6cb2a83 100644 --- a/backend/utils/createAdmin.js +++ b/backend/utils/createAdmin.js @@ -15,20 +15,20 @@ mongoose.connect(process.env.MONGO_URI) const createAdminAccount = async () => { try { - // Check if admin already exists - const adminExists = await User.findOne({ email: 'admin' }); + // Check if admin already exists - use a valid email format + const adminExists = await User.findOne({ email: 'admin@example.com' }); if (adminExists) { console.log('Admin account already exists'); - console.log('Email: admin'); + console.log('Email: admin@example.com'); console.log('Password: admin124'); process.exit(0); } - // Create admin user + // Create admin user with a valid email format const admin = new User({ name: 'Администратор', - email: 'admin', + email: 'admin@example.com', password: 'admin124', dateOfBirth: new Date('1990-01-01'), gender: 'other', @@ -40,9 +40,8 @@ const createAdminAccount = async () => { } }); - await admin.save(); - console.log('Admin account created successfully'); - console.log('Email: admin'); + await admin.save(); console.log('Admin account created successfully'); + console.log('Email: admin@example.com'); console.log('Password: admin124'); process.exit(0); } catch (error) { diff --git a/backend/utils/initAdmin.js b/backend/utils/initAdmin.js index 730feac..aa88826 100644 --- a/backend/utils/initAdmin.js +++ b/backend/utils/initAdmin.js @@ -7,19 +7,18 @@ const bcrypt = require('bcryptjs'); * Этот аккаунт будет всегда активен */ const initAdminAccount = async () => { - try { - console.log('[ADMIN INIT] Проверка наличия административного аккаунта...'); + try { console.log('[ADMIN INIT] Проверка наличия административного аккаунта...'); - // Проверяем, существует ли уже админ - const adminExists = await User.findOne({ email: 'admin', isAdmin: true }); + // Проверяем, существует ли уже админ - используем правильный формат email + const adminExists = await User.findOne({ email: 'admin@example.com', isAdmin: true }); if (!adminExists) { console.log('[ADMIN INIT] Административный аккаунт не найден. Создаю новый...'); - // Создаем админа, если не существует + // Создаем админа, если не существует - с валидным форматом email const admin = new User({ name: 'Администратор', - email: 'admin', // Используем 'admin' как логин + email: 'admin@example.com', // Используем валидный email password: 'admin124', dateOfBirth: new Date('1990-01-01'), // Устанавливаем формальную дату рождения gender: 'other', @@ -29,17 +28,16 @@ const initAdminAccount = async () => { city: 'Admin', country: 'System' } - }); // Сохраняем админа - const savedAdmin = await admin.save(); + }); // Сохраняем админа const savedAdmin = await admin.save(); if (savedAdmin) { - console.log('[ADMIN INIT] Административный аккаунт успешно создан с логином: admin'); + console.log('[ADMIN INIT] Административный аккаунт успешно создан с email: admin@example.com'); console.log('[ADMIN INIT] ID администратора:', savedAdmin._id); - console.log('[ADMIN INIT] Для входа используйте: логин "admin", пароль "admin124"'); + console.log('[ADMIN INIT] Для входа используйте: email "admin@example.com", пароль "admin124"'); } else { console.error('[ADMIN INIT] Ошибка при сохранении администратора - не возвращен объект'); } } else { - console.log('[ADMIN INIT] Административный аккаунт с логином "admin" уже существует'); + console.log('[ADMIN INIT] Административный аккаунт с email "admin@example.com" уже существует'); console.log('[ADMIN INIT] ID администратора:', adminExists._id); } } catch (error) { diff --git a/backend/utils/test-admin.js b/backend/utils/test-admin.js index bc02b95..71b1c3a 100644 --- a/backend/utils/test-admin.js +++ b/backend/utils/test-admin.js @@ -22,8 +22,8 @@ const connectDB = async () => { // Function to create admin const createAdmin = async () => { try { - // Check if admin exists - let admin = await User.findOne({ email: 'admin' }); + // Check if admin exists with valid email format + let admin = await User.findOne({ email: 'admin@example.com' }); if (admin) { console.log('Admin user already exists:'); @@ -50,7 +50,7 @@ const createAdmin = async () => { admin = new User({ name: 'Администратор', - email: 'admin', + email: 'admin@example.com', // Use valid email format password: hashedPassword, dateOfBirth: new Date('1990-01-01'), gender: 'other', @@ -150,15 +150,10 @@ const main = async () => { // Create admin alias const adminAlias = await createAdminAlias(); - - console.log('\nAdmin Credentials:'); - console.log('1. Login: admin'); - console.log(' Password: admin124'); - - if (adminAlias) { - console.log('2. Login: admin@example.com'); - console.log(' Password: admin124'); - } + console.log('\nAdmin Credentials:'); + console.log('Email: admin@example.com'); + console.log('Password: admin124'); + console.log('\nYou can also use "admin" as username and "admin124" as password'); console.log('\nDone!'); process.exit(0);