76 lines
1.7 KiB
Plaintext
76 lines
1.7 KiB
Plaintext
|
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)
|
||
|
}
|
||
|
}
|