const { UsersAuth, UserProfile } = require('../models'); const { initializeDatabase } = require('../config/database'); const { setupRelationships } = require('../models'); const bcrypt = require('bcrypt'); const crypto = require('crypto'); /** * Script tạo user test để thử nghiệm login */ async function createTestUser() { try { console.log('🚀 Bắt đầu tạo user test...\n'); // Khởi tạo database await initializeDatabase(); setupRelationships(); // Test credentials const testUsers = [ { username: 'admin', email: 'admin@senaai.tech', password: 'admin123', full_name: 'Administrator', phone: '0900000001', }, { username: 'teacher1', email: 'teacher1@senaai.tech', password: 'teacher123', full_name: 'Giáo viên Test', phone: '0900000002', }, { username: 'student1', email: 'student1@senaai.tech', password: 'student123', full_name: 'Học sinh Test', phone: '0900000003', }, ]; for (const userData of testUsers) { console.log(`📝 Đang tạo user: ${userData.username}...`); // Kiểm tra user đã tồn tại chưa const existingUser = await UsersAuth.findOne({ where: { [require('sequelize').Op.or]: [ { username: userData.username }, { email: userData.email }, ], }, }); if (existingUser) { console.log(` ⚠️ User ${userData.username} đã tồn tại, bỏ qua.\n`); continue; } // Hash password const salt = crypto.randomBytes(16).toString('hex'); const passwordHash = await bcrypt.hash(userData.password + salt, 10); // Tạo user const newUser = await UsersAuth.create({ username: userData.username, email: userData.email, password_hash: passwordHash, salt, qr_secret: crypto.randomBytes(32).toString('hex'), is_active: true, }); // Tạo profile await UserProfile.create({ user_id: newUser.id, full_name: userData.full_name, phone: userData.phone, }); console.log(` ✅ Đã tạo user: ${userData.username}`); console.log(` Email: ${userData.email}`); console.log(` Password: ${userData.password}\n`); } console.log('✅ Hoàn tất tạo test users!\n'); console.log('═══════════════════════════════════════════════════'); console.log('📋 THÔNG TIN ĐĂNG NHẬP TEST:'); console.log('═══════════════════════════════════════════════════'); testUsers.forEach(user => { console.log(`\n👤 ${user.full_name}`); console.log(` Username: ${user.username}`); console.log(` Email: ${user.email}`); console.log(` Password: ${user.password}`); }); console.log('\n═══════════════════════════════════════════════════'); console.log('\n🌐 Mở trình duyệt và truy cập:'); console.log(' http://localhost:4000/login.html'); console.log('\n💡 Sử dụng thông tin trên để đăng nhập!\n'); process.exit(0); } catch (error) { console.error('❌ Lỗi:', error.message); console.error(error); process.exit(1); } } // Run script createTestUser();