| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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)
- }
- }
- func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) {
- // 可根据业务需求来设置接口版本
- v1 := r.Group("/api")
- for _, f := range routerCheckRole {
- f(v1, authMiddleware)
- }
- }
|