46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package middleware
 | |
| 
 | |
| import (
 | |
| 	"go-admin/common/actions"
 | |
| 
 | |
| 	"github.com/gin-gonic/gin"
 | |
| 	"github.com/go-admin-team/go-admin-core/sdk"
 | |
| 	jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
 | |
| 
 | |
| 	"github.com/gin-contrib/cors"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	JwtTokenCheck   string = "JwtToken"
 | |
| 	RoleCheck       string = "AuthCheckRole"
 | |
| 	PermissionCheck string = "PermissionAction"
 | |
| )
 | |
| 
 | |
| func InitMiddleware(r *gin.Engine) {
 | |
| 	r.Use(DemoEvn())
 | |
| 	r.Use(cors.New(cors.Config{
 | |
| 		AllowOrigins:     []string{"*"},                            // 允许所有
 | |
| 		AllowMethods:     []string{"GET", "POST", "PUT", "DELETE"}, // 允许的方法
 | |
| 		AllowHeaders:     []string{"Origin", "Content-Length", "Content-Type", "Authorization", "Accept-Language"},
 | |
| 		ExposeHeaders:    []string{"Content-Length", "Authorization"},
 | |
| 		AllowCredentials: true, // 允许携带 cookie
 | |
| 	}))
 | |
| 	// 数据库链接
 | |
| 	r.Use(WithContextDb)
 | |
| 	// 日志处理
 | |
| 	r.Use(LoggerToFile())
 | |
| 	// 自定义错误处理
 | |
| 	r.Use(CustomError)
 | |
| 	// NoCache is a middleware function that appends headers
 | |
| 	r.Use(NoCache)
 | |
| 	// 跨域处理
 | |
| 	r.Use(Options)
 | |
| 	// Secure is a middleware function that appends security
 | |
| 	r.Use(Secure)
 | |
| 	// 链路追踪
 | |
| 	//r.Use(middleware.Trace())
 | |
| 	sdk.Runtime.SetMiddleware(JwtTokenCheck, (*jwt.GinJWTMiddleware).MiddlewareFunc)
 | |
| 	sdk.Runtime.SetMiddleware(RoleCheck, AuthCheckRole())
 | |
| 	sdk.Runtime.SetMiddleware(PermissionCheck, actions.PermissionAction())
 | |
| }
 |