package middleware import ( jwtware "github.com/gofiber/contrib/jwt" "github.com/gofiber/fiber/v2" "os" ) func Protected() fiber.Handler { return jwtware.New(jwtware.Config{ SigningKey: jwtware.SigningKey{Key: []byte(os.Getenv("JWT_SECRET"))}, ErrorHandler: jwtError, TokenLookup: "cookie:token", }) } func jwtError(c *fiber.Ctx, err error) error { if err.Error() == "Missing or malformed JWT" { return c.Status(fiber.StatusBadRequest). JSON(fiber.Map{"error": "Missing or malformed token"}) } return c.Status(fiber.StatusUnauthorized). JSON(fiber.Map{"error": "Invalid or expired token"}) }