package middleware import ( "go-admin/common/actions" "github.com/gin-gonic/gin" "github.com/go-admin-team/go-admin-core/sdk" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" "github.com/gin-contrib/cors" ) const ( JwtTokenCheck string = "JwtToken" RoleCheck string = "AuthCheckRole" PermissionCheck string = "PermissionAction" ) func InitMiddleware(r *gin.Engine) { r.Use(DemoEvn()) r.Use(cors.New(cors.Config{ AllowOrigins: []string{"*"}, // 允许所有 AllowMethods: []string{"GET", "POST", "PUT", "DELETE"}, // 允许的方法 AllowHeaders: []string{"Origin", "Content-Length", "Content-Type", "Authorization", "Accept-Language"}, ExposeHeaders: []string{"Content-Length", "Authorization"}, AllowCredentials: true, // 允许携带 cookie })) // 数据库链接 r.Use(WithContextDb) // 日志处理 r.Use(LoggerToFile()) // 自定义错误处理 r.Use(CustomError) // NoCache is a middleware function that appends headers r.Use(NoCache) // 跨域处理 r.Use(Options) // Secure is a middleware function that appends security r.Use(Secure) // 链路追踪 //r.Use(middleware.Trace()) sdk.Runtime.SetMiddleware(JwtTokenCheck, (*jwt.GinJWTMiddleware).MiddlewareFunc) sdk.Runtime.SetMiddleware(RoleCheck, AuthCheckRole()) sdk.Runtime.SetMiddleware(PermissionCheck, actions.PermissionAction()) }