64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
const mysql = require('mysql2/promise');
|
|
const bcrypt = require('bcrypt');
|
|
|
|
const dbConfig = {
|
|
host: process.env.DB_HOST || 'mysql.theaken.com',
|
|
port: parseInt(process.env.DB_PORT || '33306'),
|
|
user: process.env.DB_USER || 'AI_Platform',
|
|
password: process.env.DB_PASSWORD || 'Aa123456',
|
|
database: process.env.DB_NAME || 'db_AI_Platform',
|
|
charset: 'utf8mb4',
|
|
timezone: '+08:00'
|
|
};
|
|
|
|
async function resetUserPassword() {
|
|
let connection;
|
|
|
|
try {
|
|
console.log('🔧 重置用戶密碼...');
|
|
|
|
connection = await mysql.createConnection(dbConfig);
|
|
console.log('✅ 資料庫連接成功');
|
|
|
|
// 新密碼
|
|
const newPassword = 'Admin123';
|
|
const hashedPassword = await bcrypt.hash(newPassword, 12);
|
|
|
|
console.log(`\n新密碼: ${newPassword}`);
|
|
console.log(`密碼哈希: ${hashedPassword}`);
|
|
|
|
// 重置所有管理員用戶的密碼
|
|
const adminEmails = [
|
|
'admin@theaken.com',
|
|
'admin@example.com',
|
|
'petty091901@gmail.com'
|
|
];
|
|
|
|
for (const email of adminEmails) {
|
|
try {
|
|
await connection.execute(
|
|
'UPDATE users SET password_hash = ? WHERE email = ?',
|
|
[hashedPassword, email]
|
|
);
|
|
|
|
console.log(`✅ 已重置 ${email} 的密碼`);
|
|
} catch (error) {
|
|
console.error(`❌ 重置 ${email} 密碼失敗:`, error.message);
|
|
}
|
|
}
|
|
|
|
console.log('\n🎉 密碼重置完成!');
|
|
console.log('現在可以使用以下憑證登入:');
|
|
console.log('電子郵件: admin@theaken.com');
|
|
console.log('密碼: Admin123');
|
|
|
|
} catch (error) {
|
|
console.error('❌ 重置失敗:', error);
|
|
} finally {
|
|
if (connection) {
|
|
await connection.end();
|
|
}
|
|
}
|
|
}
|
|
|
|
resetUserPassword();
|