fix: DevTools 读取 .env 管理员凭据 + 统一 main.go 密码 fallback

两个问题导致用户无法用 .env 中的管理员账户登录:
1. DevTools 未读取 backend/.env,始终传 admin/cyrene-dev-admin 给 gateway
2. gateway main.go 中创建管理员时独立读取 os.Getenv 并以 "admin123"
   为 fallback,与 config.go 的 cfg.AdminPassword 不一致

修复:
- config.js: 启动时加载 backend/.env 到 process.env (不覆盖已有环境变量)
- main.go: 移除独立的 os.Getenv 读取,统一使用 cfg.AdminPassword

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 22:01:30 +08:00
parent 7c3b428257
commit 773f19f009
2 changed files with 24 additions and 5 deletions
+1 -5
View File
@@ -64,11 +64,7 @@ func main() {
log.Printf("⚠ 查询管理员用户失败: %v", err)
} else if existingAdmin == nil {
log.Printf("🔧 未找到管理员用户,创建默认 %s (username: %s)...", cfg.AdminUsername, cfg.AdminUsername)
// 优先使用环境变量 ADMIN_PASSWORD,否则回退到 "admin123"
defaultAdminPassword := os.Getenv("ADMIN_PASSWORD")
if defaultAdminPassword == "" {
defaultAdminPassword = "admin123"
}
defaultAdminPassword := cfg.AdminPassword
passwordHash, err := bcrypt.GenerateFromPassword([]byte(defaultAdminPassword), bcrypt.DefaultCost)
if err != nil {
log.Printf("⚠ 管理员密码哈希生成失败: %v", err)