Files
be.ems/src/modules/oauth2/oauth2.go

75 lines
2.1 KiB
Go

package oauth2
import (
"github.com/gin-gonic/gin"
"be.ems/src/framework/logger"
"be.ems/src/framework/middleware"
"be.ems/src/modules/oauth2/controller"
)
// Setup 模块路由注册
func Setup(router *gin.Engine) {
logger.Infof("开始加载 ====> oauth2 模块路由")
// 客户端授权管理
oauth2ClientGroup := router.Group("/oauth2/client")
{
oauth2ClientGroup.GET("/list",
middleware.AuthorizeUser(map[string][]string{"matchRoles": {"admin"}}),
controller.NewOauth2Client.List,
)
oauth2ClientGroup.GET("/:clientId",
middleware.AuthorizeUser(map[string][]string{"matchRoles": {"admin"}}),
controller.NewOauth2Client.Info,
)
oauth2ClientGroup.POST("",
middleware.AuthorizeUser(map[string][]string{"matchRoles": {"admin"}}),
middleware.OperateLog(middleware.OptionNew("log.operate.title.oauth2client", middleware.BUSINESS_TYPE_INSERT)),
controller.NewOauth2Client.Add,
)
oauth2ClientGroup.PUT("",
middleware.AuthorizeUser(map[string][]string{"matchRoles": {"admin"}}),
middleware.OperateLog(middleware.OptionNew("log.operate.title.oauth2client", middleware.BUSINESS_TYPE_UPDATE)),
controller.NewOauth2Client.Edit,
)
oauth2ClientGroup.DELETE("/:id",
middleware.AuthorizeUser(map[string][]string{"matchRoles": {"admin"}}),
middleware.OperateLog(middleware.OptionNew("log.operate.title.oauth2client", middleware.BUSINESS_TYPE_DELETE)),
controller.NewOauth2Client.Remove,
)
}
// 授权认证
oauth2Group := router.Group("/oauth2")
{
oauth2Group.GET("/authorize",
middleware.RateLimit(middleware.LimitOption{
Time: 60,
Count: 30,
Type: middleware.LIMIT_IP,
}),
controller.NewOauth2.Authorize,
)
oauth2Group.POST("/token",
middleware.RateLimit(middleware.LimitOption{
Time: 180,
Count: 15,
Type: middleware.LIMIT_IP,
}),
controller.NewOauth2.Token,
)
oauth2Group.POST("/refresh-token",
middleware.RateLimit(middleware.LimitOption{
Time: 60,
Count: 5,
Type: middleware.LIMIT_IP,
}),
controller.NewOauth2.RefreshToken,
)
}
// ==== 授权认证的开放接口 ====
openAPI(router)
}