134 lines
2.5 KiB
Markdown
134 lines
2.5 KiB
Markdown
# 工具包
|
||
|
||
本模块提供各种实用工具函数和类。
|
||
|
||
## 功能特性
|
||
|
||
- 加密工具(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("用户登录")
|
||
```
|
||
|