# 工具包 本模块提供各种实用工具函数和类。 ## 功能特性 - 加密工具(MD5、SHA256、密码哈希) - JWT token管理 - 统一响应处理 - 数据验证 - 日志管理 ## 模块结构 ``` utils/ ├── crypto.go # 加密工具 ├── jwt.go # JWT管理 ├── response.go # 响应处理 ├── validator.go # 数据验证 ├── logger.go # 日志管理 └── README.md # 说明文档 ``` ## 使用方法 ### 加密工具 ```go import "goalfymax-admin/pkg/utils" // MD5哈希 hash := utils.MD5Hash("password") // SHA256哈希 hash := utils.SHA256Hash("password") // 生成盐值 salt, err := utils.GenerateSalt() // 哈希密码 hashedPassword := utils.HashPassword("password", salt) // 验证密码 isValid := utils.VerifyPassword("password", salt, hashedPassword) ``` ### JWT管理 ```go // 创建JWT管理器 jwtManager := utils.NewJWTManager("your-secret-key") // 生成token token, err := jwtManager.GenerateToken(1, "admin", "admin") // 解析token claims, err := jwtManager.ParseToken(token) // 刷新token newToken, err := jwtManager.RefreshToken(token) ``` ### 响应处理 ```go // 创建响应实例 resp := utils.NewResponse() // 成功响应 resp.Success(c, data) // 错误响应 resp.Error(c, 400, "参数错误") resp.BadRequest(c, "请求参数错误") resp.Unauthorized(c, "未授权") resp.Forbidden(c, "禁止访问") resp.NotFound(c, "资源不存在") resp.InternalServerError(c, "服务器内部错误") // 分页响应 resp.Page(c, data, total, page, size) ``` ### 数据验证 ```go // 创建验证器 validator := utils.NewValidator() // 验证邮箱 isValid := validator.IsEmail("user@example.com") // 验证手机号 isValid := validator.IsPhone("13800138000") // 验证用户名 isValid := validator.IsUsername("admin") // 验证密码强度 isValid := validator.IsPassword("password123") // 验证URL isValid := validator.IsURL("https://example.com") // 检查是否为空 isEmpty := validator.IsEmpty("") // 验证角色 isValid := validator.IsValidRole("admin") ``` ### 日志管理 ```go // 创建日志实例 logger, err := utils.NewLogger("info", "json", "stdout") if err != nil { log.Fatal(err) } // 记录日志 logger.Info("用户登录", zap.String("username", "admin")) logger.Error("登录失败", zap.String("error", "密码错误")) // 添加字段 logger.WithField("user_id", 1).Info("用户操作") logger.WithFields(map[string]interface{}{ "user_id": 1, "action": "login", }).Info("用户登录") ```