router.go 859 Bytes
Newer Older
haoyanbin's avatar
1  
haoyanbin committed
1 2 3 4
package router

import (
	"github.com/gin-gonic/gin"
haoyanbin's avatar
haoyanbin committed
5
	"go-admin/common/middleware"
haoyanbin's avatar
1  
haoyanbin committed
6 7 8 9
)

var (
	routerNoCheckRole = make([]func(*gin.RouterGroup), 0)
haoyanbin's avatar
haoyanbin committed
10
	routerCheckRole   = make([]func(v1 *gin.RouterGroup), 0)
haoyanbin's avatar
1  
haoyanbin committed
11 12 13
)

// initRouter 路由示例
haoyanbin's avatar
haoyanbin committed
14
func initRouter(r *gin.Engine) *gin.Engine {
haoyanbin's avatar
1  
haoyanbin committed
15 16 17 18

	// 无需认证的路由
	noCheckRoleRouter(r)
	// 需要认证的路由
haoyanbin's avatar
haoyanbin committed
19
	checkRoleRouter(r)
haoyanbin's avatar
1  
haoyanbin committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

	return r
}

// noCheckRoleRouter 无需认证的路由示例
func noCheckRoleRouter(r *gin.Engine) {
	// 可根据业务需求来设置接口版本
	v1 := r.Group("/mobile/v1")

	for _, f := range routerNoCheckRole {
		f(v1)
	}
}

// checkRoleRouter 需要认证的路由示例
haoyanbin's avatar
haoyanbin committed
35
func checkRoleRouter(r *gin.Engine) {
haoyanbin's avatar
1  
haoyanbin committed
36 37
	// 可根据业务需求来设置接口版本
	v1 := r.Group("/mobile/v1")
haoyanbin's avatar
haoyanbin committed
38
	v1.Use(middleware.JWTAuthMiddleware())
haoyanbin's avatar
1  
haoyanbin committed
39
	for _, f := range routerCheckRole {
haoyanbin's avatar
haoyanbin committed
40
		f(v1)
haoyanbin's avatar
1  
haoyanbin committed
41 42
	}
}