123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- 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)
- }
- }
|