Files

2.5 KiB
Raw Permalink Blame History

工具包

本模块提供各种实用工具函数和类。

功能特性

  • 加密工具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("用户登录")