package main import ( "gateway/config" "gateway/handlers" "gateway/middleware" "gateway/models" "gateway/utils" "github.com/gin-contrib/sessions" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" ) func main() { // 初始化日志 utils.InitLogger() // 初始化数据库 db, err := gorm.Open("sqlite3", "family.db") if err != nil { utils.Logger.Fatalf("数据库连接失败: %v", err) } defer db.Close() db.AutoMigrate(&models.Region{}, &models.User{}) // 初始化 Gin 引擎 r := gin.Default() // 配置静态文件服务 r.Static("/assets", "./static/assets") r.LoadHTMLGlob("templates/*") // 配置 Session 中间件 store := config.InitSessionStore() r.Use(sessions.Sessions("mysession", store)) // 路由配置 r.GET("/login", handlers.GetLogin) r.POST("/login", handlers.PostLogin(db)) r.GET("/register", handlers.GetRegister(db)) r.POST("/register", handlers.PostRegister(db)) // 权限校验中间件 r.Use(middleware.AuthRequired()) // 文档页面路由 r.GET("/", handlers.ServeIndex(db)) // 在权限校验中间件后添加退出路由 r.GET("/logout", handlers.Logout) // 新增通用静态文件路由(放在其他路由之后) r.NoRoute(handlers.ServeStatic(db)) // 启动服务 r.Run(":7070") }