fix: 安装时创建管理员用户,登录从数据库验证
Build and Deploy / build (push) Failing after 1m49s
Build and Deploy / deploy (push) Has been skipped

This commit is contained in:
2026-07-16 18:50:54 +00:00
parent 67bef239b0
commit a6b03a6152
3 changed files with 48 additions and 25 deletions
+18 -4
View File
@@ -62,8 +62,8 @@ func Close() error {
return nil
}
// 确保 admin 用户存在
func EnsureAdminUser() error {
// 确保 admin 用户存在(仅在安装时调用)
func EnsureAdminUser(username, password string) error {
var count int64
DB.Model(&model.User{}).Where("role = ?", model.RoleAdmin).Count(&count)
if count > 0 {
@@ -71,8 +71,8 @@ func EnsureAdminUser() error {
}
admin := &model.User{
Username: "admin",
HashedPassword: HashPassword("admin"),
Username: username,
HashedPassword: HashPassword(password),
Role: model.RoleAdmin,
Balance: 1000000,
}
@@ -80,6 +80,20 @@ func EnsureAdminUser() error {
return DB.Create(admin).Error
}
// 验证用户登录
func ValidateUser(username, password string) (*model.User, error) {
var user model.User
if err := DB.Where("username = ?", username).First(&user).Error; err != nil {
return nil, err
}
if user.HashedPassword != password {
return nil, fmt.Errorf("密码错误")
}
return &user, nil
}
func HashPassword(password string) string {
// 简化处理,实际应使用 bcrypt
// 后续补充完整实现