feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能 - 集成Gin、GORM、Viper、Zap等框架 - 添加密码加密、数据库操作、中间件等完整功能 - 配置多环境支持、日志轮转、CORS处理 - 创建完整的项目结构和配置文件体系
This commit is contained in:
66
Web开发/06go-auth-api/main.go
Normal file
66
Web开发/06go-auth-api/main.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
//加载配置
|
||||
cfg, err := LoadConfig()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
//初始化日志
|
||||
err = InitLogger(cfg.App.Env)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
defer Logger.Sync()
|
||||
|
||||
//初始化数据库
|
||||
err = InitDB(cfg)
|
||||
if err != nil {
|
||||
Logger.Fatal("数据库初始化失败", zap.Error(err))
|
||||
}
|
||||
|
||||
//创建Gin应用
|
||||
r := gin.Default()
|
||||
|
||||
//中间件
|
||||
r.Use(LoggingMiddleware())
|
||||
r.Use(CORSMiddleware())
|
||||
|
||||
// 公开路由
|
||||
public := r.Group("/api")
|
||||
{
|
||||
public.GET("/health", HealthCheck)
|
||||
public.POST("/register", Register(cfg))
|
||||
public.POST("/login", Login(cfg))
|
||||
}
|
||||
|
||||
// 受保护的路由
|
||||
protected := r.Group("/api")
|
||||
protected.Use(AuthMiddleware(cfg))
|
||||
{
|
||||
protected.GET("/profile", GetProfile)
|
||||
protected.PUT("/profile", UpdateProfile)
|
||||
}
|
||||
|
||||
// 启动服务器
|
||||
addr := fmt.Sprintf(":%d", cfg.App.Port)
|
||||
Logger.Info("Server starting",
|
||||
zap.String("app", cfg.App.Name),
|
||||
zap.Int("port", cfg.App.Port),
|
||||
zap.String("env", cfg.App.Env),
|
||||
)
|
||||
|
||||
if err = r.Run(addr); err != nil {
|
||||
Logger.Fatal("Server error", zap.Error(err))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user