修复: 管理员账号密码从环境变量读取

问题描述:
- 安装时设置的管理员账号密码无效
- 始终使用硬编码的 admin/admin123

修复内容:
- createDefaultAdmin() 函数现在从环境变量读取
- 使用 process.env.ADMIN_USERNAME 和 ADMIN_PASSWORD
- 保留默认值作为后备方案

影响范围:
- backend/database.js: createDefaultAdmin() 函数 (lines 130-159)

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
WanWanYun
2025-11-11 00:27:54 +08:00
parent 2213547e3d
commit 4e9a3a5d26

View File

@@ -131,7 +131,11 @@ function createDefaultAdmin() {
const adminExists = db.prepare('SELECT id FROM users WHERE is_admin = 1').get(); const adminExists = db.prepare('SELECT id FROM users WHERE is_admin = 1').get();
if (!adminExists) { if (!adminExists) {
const hashedPassword = bcrypt.hashSync('admin123', 10); // 从环境变量读取管理员账号密码,如果没有则使用默认值
const adminUsername = process.env.ADMIN_USERNAME || 'admin';
const adminPassword = process.env.ADMIN_PASSWORD || 'admin123';
const hashedPassword = bcrypt.hashSync(adminPassword, 10);
db.prepare(` db.prepare(`
INSERT INTO users ( INSERT INTO users (
@@ -139,8 +143,8 @@ function createDefaultAdmin() {
is_admin, is_active, has_ftp_config is_admin, is_active, has_ftp_config
) VALUES (?, ?, ?, ?, ?, ?) ) VALUES (?, ?, ?, ?, ?, ?)
`).run( `).run(
'admin', adminUsername,
'admin@example.com', `${adminUsername}@example.com`,
hashedPassword, hashedPassword,
1, 1,
1, 1,
@@ -148,8 +152,8 @@ function createDefaultAdmin() {
); );
console.log('默认管理员账号已创建'); console.log('默认管理员账号已创建');
console.log('用户名: admin'); console.log('用户名:', adminUsername);
console.log('密码: admin123'); console.log('密码: ********');
console.log('⚠️ 请登录后立即修改密码!'); console.log('⚠️ 请登录后立即修改密码!');
} }
} }