package router import ( "github.com/gin-gonic/gin" _ "github.com/gin-gonic/gin" log "github.com/go-admin-team/go-admin-core/logger" "github.com/go-admin-team/go-admin-core/sdk" // "github.com/go-admin-team/go-admin-core/sdk/pkg" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" common "go-admin/common/middleware" "os" ) 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 { h = gin.New() sdk.Runtime.SetEngine(h) } switch h.(type) { case *gin.Engine: r = h.(*gin.Engine) default: log.Fatal("not support other engine") os.Exit(-1) } // the jwt middleware authMiddleware, err := common.AuthInit() if err != nil { log.Fatalf("JWT Init Error, %s", err.Error()) } // 注册业务路由 InitBusinessRouter(r, authMiddleware) } func InitBusinessRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { // 无需认证的路由 noCheckRoleRouter(r) // 需要认证的路由 checkRoleRouter(r, authMiddleware) return r } // noCheckRoleRouter 无需认证的路由 func noCheckRoleRouter(r *gin.Engine) { // 可根据业务需求来设置接口版本 v := r.Group("/api/v1") for _, f := range routerNoCheckRole { f(v) } } // checkRoleRouter 需要认证的路由 func checkRoleRouter(r *gin.Engine, authMiddleware *jwtauth.GinJWTMiddleware) { // 可根据业务需求来设置接口版本 v := r.Group("/api/v1") for _, f := range routerCheckRole { f(v, authMiddleware) } }