工具包
本模块提供各种实用工具函数和类。
功能特性
- 加密工具(MD5、SHA256、密码哈希)
- JWT token管理
- 统一响应处理
- 数据验证
- 日志管理
模块结构
utils/
├── crypto.go # 加密工具
├── jwt.go # JWT管理
├── response.go # 响应处理
├── validator.go # 数据验证
├── logger.go # 日志管理
└── README.md # 说明文档
使用方法
加密工具
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管理
// 创建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)
响应处理
// 创建响应实例
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)
数据验证
// 创建验证器
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")
日志管理
// 创建日志实例
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("用户登录")