YiTao/controller/controller.go

52 lines
1.1 KiB
Go
Raw Normal View History

2024-11-09 14:59:27 +08:00
package controller
import (
"yitao/service"
2024-11-09 16:36:28 +08:00
"github.com/iris-contrib/middleware/jwt"
2024-11-09 14:59:27 +08:00
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/core/router"
"github.com/kataras/iris/v12/mvc"
)
type BaseController struct {
Ctx iris.Context
Service *service.Service
}
var serv *service.Service
var apiParty router.Party
type ControllerInterface interface {
BeforeActivation(mvc.BeforeActivation)
}
func LoadRouter(app *iris.Application, service *service.Service) {
serv = service
apiParty = app.Party("/api")
registerController("/user", new(UserController))
registerController("/captcha", new(CaptchaController))
registerController("/item", new(ItemController))
registerController("/file", new(FileController))
}
func registerController(root string, controller ControllerInterface) {
router := mvc.New(apiParty.Party(root))
router.Register(
serv,
)
router.Handle(controller)
}
2024-11-09 16:36:28 +08:00
func GetUidFromCtx(ctx iris.Context) uint {
// 从 jwt 中获取 uid
if token, ok := ctx.Values().Get("jwt").(*jwt.Token); ok {
// Use the token if needed
uid := uint(token.Claims.(jwt.MapClaims)["uid"].(float64))
return uid
}
return 0
}