Files
ameiba_cn_new/cms/server/src/change-password.js
T

51 lines
1.4 KiB
JavaScript

import { initDB, getDB } from './db.js';
import bcrypt from 'bcryptjs';
import readline from 'readline';
await initDB();
const db = getDB();
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const question = (q) => new Promise(resolve => rl.question(q, resolve));
console.log('=== 修改CMS管理员密码 ===\n');
const username = await question('用户名 (默认 admin): ') || 'admin';
const newPassword = await question('新密码: ');
const confirmPassword = await question('确认密码: ');
if (newPassword !== confirmPassword) {
console.error('❌ 两次密码不一致!');
process.exit(1);
}
if (newPassword.length < 6) {
console.error('❌ 密码长度至少6位!');
process.exit(1);
}
const hash = bcrypt.hashSync(newPassword, 10);
db.get(`SELECT id FROM admins WHERE username = ?`, [username], (err, row) => {
if (err || !row) {
console.error(`❌ 用户 "${username}" 不存在!`);
process.exit(1);
}
db.run(`UPDATE admins SET password_hash = ? WHERE username = ?`, [hash, username], (err) => {
if (err) {
console.error('❌ 修改失败:', err.message);
process.exit(1);
}
console.log(`\n✅ 密码修改成功!`);
console.log(` 用户名: ${username}`);
console.log(` 新密码: ${newPassword}`);
rl.close();
setTimeout(() => process.exit(0), 500);
});
});