2025-05-15 15:56:20 +08:00
|
|
|
package handlers
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/gofiber/fiber/v2"
|
2025-05-16 17:04:03 +08:00
|
|
|
"proxy-server/gateway/app"
|
|
|
|
|
"proxy-server/gateway/core"
|
2025-05-15 15:56:20 +08:00
|
|
|
)
|
|
|
|
|
|
2025-05-19 09:41:41 +08:00
|
|
|
type PermitReq struct {
|
2025-05-17 11:02:18 +08:00
|
|
|
Id int32 `json:"id"`
|
2025-05-15 15:56:20 +08:00
|
|
|
core.Permit
|
|
|
|
|
}
|
|
|
|
|
|
2025-05-19 09:41:41 +08:00
|
|
|
func Permit(ctx *fiber.Ctx) (err error) {
|
2025-05-15 15:56:20 +08:00
|
|
|
|
|
|
|
|
// 安全验证
|
|
|
|
|
var sec core.SecuredReq
|
|
|
|
|
if err := ctx.BodyParser(&sec); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取请求参数
|
2025-05-19 10:57:56 +08:00
|
|
|
req, err := core.Decrypt[[]PermitReq](&sec, app.PlatformSecret)
|
2025-05-15 15:56:20 +08:00
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 保存授权配置
|
2025-05-19 10:57:56 +08:00
|
|
|
for _, permit := range *req {
|
|
|
|
|
app.Permits.Store(permit.Id, &permit.Permit)
|
|
|
|
|
}
|
2025-05-15 15:56:20 +08:00
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|