This commit is contained in:
2026-06-30 10:39:29 +07:00
parent aaafa6ada9
commit d9c8e3930b
28 changed files with 3040 additions and 167 deletions

View File

@@ -0,0 +1,33 @@
package middleware
import (
"strings"
"server/internal/auth"
"github.com/gofiber/fiber/v2"
)
func RequireStaff() fiber.Handler {
return func(c *fiber.Ctx) error {
header := c.Get("Authorization")
if header == "" || !strings.HasPrefix(header, "Bearer ") {
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "Unauthorized"})
}
token := strings.TrimSpace(strings.TrimPrefix(header, "Bearer "))
claims, err := auth.ParseToken(token)
if err != nil {
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "Invalid or expired token"})
}
c.Locals("staffId", claims.StaffID)
c.Locals("staffEmail", claims.Email)
return c.Next()
}
}
func StaffIDFromCtx(c *fiber.Ctx) uint {
if v, ok := c.Locals("staffId").(uint); ok {
return v
}
return 0
}