package router import ( "IotAdmin/common/middleware" "IotAdmin/core/logger" "IotAdmin/core/sdk" jwt "IotAdmin/core/sdk/pkg/jwt-auth" "os" "github.com/gin-gonic/gin" ) var ( routerNoCheckRole = make([]func(*gin.RouterGroup), 0) routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) ) // InitRouter 路由初始化 func InitRouter() { var r *gin.Engine h := sdk.Runtime.GetEngine() if h == nil { logger.Fatal("未发现Engine...") os.Exit(-1) } switch h.(type) { case *gin.Engine: r = h.(*gin.Engine) default: logger.Fatal("不支持其他engine") os.Exit(-1) } // jwt middleware authMiddleware, err := middleware.AuthInit() if err != nil { logger.Fatalf("JWT初始化错误, %s", err.Error()) } // 无需认证的路由 noCheckRoleRouter(r) // 需要认证的路由 checkRoleRouter(r, authMiddleware) } // noCheckRoleRouter 无需认证的路由示例 func noCheckRoleRouter(r *gin.Engine) { // 可根据业务需求来设置接口版本 v1 := r.Group("/api") for _, f := range routerNoCheckRole { f(v1) } } // checkRoleRouter 需要认证的路由示例 func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { // 可根据业务需求来设置接口版本 v1 := r.Group("/api") for _, f := range routerCheckRole { f(v1, authMiddleware) } }