update
This commit is contained in:
111
scripts/create-test-user.js
Normal file
111
scripts/create-test-user.js
Normal file
@@ -0,0 +1,111 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user