package middleware import ( "gitea.pena/PenaSide/common/jwt_adapter" "github.com/gofiber/fiber/v2" ) func JwtPlug() fiber.Handler { return func(c *fiber.Ctx) error { if c.Get("TestAuth") == "75bc853ae763ffc36cad97069682fed1" { c.Locals("userID", "62ac67a1471fd0f7892353bf") } return c.Next() } } func LocalJwt() fiber.Handler { return func(c *fiber.Ctx) error { if c.Get("LocalUserID") != "" { c.Locals("userID", c.Get("LocalUserID")) } return c.Next() } } func Jwt() fiber.Handler { return func(c *fiber.Ctx) error { // check JwtPlug if c.Locals("userID") != nil { return c.Next() } jwt, err := jwt_adapter.Decode(c.Cookies(jwt_adapter.DefaultHeaderKey)) if err != nil { return fiber.NewError(fiber.StatusUnauthorized, err.Error()) } err = jwt.Validate() if err != nil { return fiber.NewError(fiber.StatusUnauthorized, err.Error()) } if jwt.GetUserID() == "" { return fiber.NewError(fiber.StatusUnauthorized, "empty user") } c.Locals("userID", jwt.GetUserID()) return c.Next() } }