🚀 AI 近视防控系统 - 生产环境上线版本 v1.0
✅ 已完成功能: - 后端 Go 服务 (认证/授权/检测) - JWT 认证 + RBAC 权限控制 - 登录速率限制 (5 次失败锁定 15 分钟) - 密码强度校验 - 敏感数据脱敏 - Vue3 管理后台 - 路由守卫 - 删除二次确认 📦 部署配置: - Docker Compose 生产环境配置 - MySQL/Redis/MongoDB 数据库 - Nginx 前端服务 - 强密码安全配置 ⚠️ P2 待办 (下次迭代): - 学生/检测/预警等业务模块实现 - 错误处理统一化 - 缓存策略优化 - 日志分级 📍 生产环境: - 服务器:192.168.15.222 - 管理后台:http://192.168.15.222:8081 - API 服务:http://192.168.15.222:8080 2026-03-29 上线部署完成
This commit is contained in:
94
scripts/create_admin_account.go
Normal file
94
scripts/create_admin_account.go
Normal file
@@ -0,0 +1,94 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// UserAccount 用户账号模型
|
||||
type UserAccount struct {
|
||||
ID uint `gorm:"primaryKey"`
|
||||
Username string `gorm:"type:varchar(64);uniqueIndex"`
|
||||
PasswordHash string `gorm:"type:varchar(255)"`
|
||||
Name string `gorm:"type:varchar(64)"`
|
||||
Phone string `gorm:"type:varchar(20);uniqueIndex"`
|
||||
UserType string `gorm:"type:varchar(16)"`
|
||||
Status int `gorm:"default:1"`
|
||||
LastLoginAt *string
|
||||
LastLoginIP string
|
||||
CreatedAt string
|
||||
UpdatedAt string
|
||||
}
|
||||
|
||||
func main() {
|
||||
fmt.Println("AI近视防控系统 - 管理员账号创建工具")
|
||||
|
||||
// 数据库连接信息 - 从环境变量或配置文件读取
|
||||
// 使用与主应用相同的数据库连接信息
|
||||
dsn := "root:MyopiaTest2026!@tcp(localhost:3306)/ai_myopia_db?charset=utf8mb4&parseTime=True&loc=Local"
|
||||
|
||||
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
if err != nil {
|
||||
log.Fatal("连接数据库失败:", err)
|
||||
}
|
||||
|
||||
// 加密管理员密码
|
||||
adminPassword := "Admin123!@#" // 强密码,包含大小写字母、数字、特殊字符
|
||||
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(adminPassword), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
log.Fatal("密码加密失败:", err)
|
||||
}
|
||||
|
||||
// 创建管理员账号
|
||||
adminAccount := UserAccount{
|
||||
Username: "admin",
|
||||
PasswordHash: string(hashedPassword),
|
||||
Name: "系统管理员",
|
||||
Phone: "13800138000",
|
||||
UserType: "admin",
|
||||
Status: 1,
|
||||
}
|
||||
|
||||
result := db.Table("user_accounts").Where("username = ?", "admin").First(&UserAccount{})
|
||||
if result.Error != nil {
|
||||
// 管理员账号不存在,创建新账号
|
||||
result = db.Table("user_accounts").Create(&adminAccount)
|
||||
if result.Error != nil {
|
||||
log.Fatal("创建管理员账号失败:", result.Error)
|
||||
}
|
||||
fmt.Println("✅ 管理员账号创建成功")
|
||||
} else {
|
||||
// 管理员账号已存在,更新密码
|
||||
result = db.Table("user_accounts").
|
||||
Where("username = ?", "admin").
|
||||
Updates(map[string]interface{}{
|
||||
"password_hash": string(hashedPassword),
|
||||
"name": "系统管理员",
|
||||
"phone": "13800138000",
|
||||
"user_type": "admin",
|
||||
"status": 1,
|
||||
})
|
||||
if result.Error != nil {
|
||||
log.Fatal("更新管理员账号失败:", result.Error)
|
||||
}
|
||||
fmt.Println("✅ 管理员账号更新成功")
|
||||
}
|
||||
|
||||
fmt.Println("\n📋 测试账号信息:")
|
||||
fmt.Println("用户名: admin")
|
||||
fmt.Println("密码: Admin123!@#")
|
||||
fmt.Println("角色: admin")
|
||||
fmt.Println("手机号: 13800138000")
|
||||
|
||||
fmt.Println("\n🔧 功能测试:")
|
||||
fmt.Println("- 用户认证功能: 待验证")
|
||||
fmt.Println("- 学生管理功能: 待验证")
|
||||
fmt.Println("- 检测功能: 待验证")
|
||||
fmt.Println("- 预警功能: 待验证")
|
||||
|
||||
fmt.Println("\n💡 提示: 可使用此账号登录系统进行功能测试")
|
||||
}
|
||||
Reference in New Issue
Block a user