33 lines
519 B
Go
33 lines
519 B
Go
package handlers
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
"proxy-server/server/app"
|
|
"proxy-server/server/core"
|
|
)
|
|
|
|
type AuthReq struct {
|
|
Port uint16 `json:"port"`
|
|
core.Permit
|
|
}
|
|
|
|
func Auth(ctx *fiber.Ctx) (err error) {
|
|
|
|
// 安全验证
|
|
var sec core.SecuredReq
|
|
if err := ctx.BodyParser(&sec); err != nil {
|
|
return err
|
|
}
|
|
|
|
// 获取请求参数
|
|
req, err := core.Decrypt[AuthReq](&sec, app.PlatformSecret)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
// 保存授权配置
|
|
app.Permits[req.Port] = req.Permit
|
|
|
|
return nil
|
|
}
|