feat(auth): 添加完整的用户认证API项目

- 实现用户注册、登录、JWT令牌认证功能
- 集成Gin、GORM、Viper、Zap等框架
- 添加密码加密、数据库操作、中间件等完整功能
- 配置多环境支持、日志轮转、CORS处理
- 创建完整的项目结构和配置文件体系
This commit is contained in:
liumangmang
2025-12-30 18:00:42 +08:00
parent 7f4527d501
commit b010f82221
139 changed files with 2772 additions and 103 deletions

View File

@@ -0,0 +1,63 @@
package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type User struct {
ID uint `gorm:"primaryKey"`
Name string `gorm:"size:100"`
Profile Profile
Orders []Order
}
type Profile struct {
ID uint `gorm:"primaryKey"`
UserID uint
Bio string `gorm:"size:200"`
}
type Order struct {
ID uint `gorm:"primaryKey"`
UserID uint
Product string `gorm:"size:100"`
}
func main() {
db, _ := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
db.AutoMigrate(&User{}, &Profile{}, &Order{})
// 创建测试数据
//user := User{
// Name: "Alice",
// Profile: Profile{Bio: "Software Engineer"},
// Orders: []Order{
// {Product: "Laptop"},
// {Product: "Mouse"},
// },
//}
//db.Create(&user)
// 1. 预加载单个关联
//var user1 User
//db.Preload("Profile").First(&user1, 1)
//fmt.Printf("User: %s, Bio: %s\n", user1.Name, user1.Profile.Bio)
//// 2. 预加载多个关联
//var user2 User
//db.Preload("Profile").Preload("Orders").First(&user2, 1)
//fmt.Printf("User: %s, Orders: %d\n", user2.Name, len(user2.Orders))
// 3. 预加载所有关联
//var user3 User
//db.Preload("Profile").Preload("Orders").First(&user3, 1)
//fmt.Printf("Fully loaded user: %s\n", user3.Name)
//// 4. 条件预加载
var user4 User
db.Preload("Orders", "product = ?", "Laptop").First(&user4, 1)
fmt.Printf("Filtered orders: %d\n", len(user4.Orders))
}