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-26 10:55:44 +08:00
|
|
|
type PermitReq []core.PermitDef
|
2025-05-15 15:56:20 +08:00
|
|
|
|
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-26 10:55:44 +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 {
|
2025-05-27 16:03:00 +08:00
|
|
|
app.StorePermit(&permit)
|
2025-05-19 10:57:56 +08:00
|
|
|
}
|
2025-05-15 15:56:20 +08:00
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|