package middleware import ( "crypto/hmac" "crypto/sha256" "encoding/hex" "github.com/gofiber/fiber/v2" ) func AleaWebhookMiddleware(secretKey string) fiber.Handler { return func(c *fiber.Ctx) error { // Verify IP comes from Alea's allowed IPs // OR verify a signature header // Example signature verification: receivedSig := c.Get("X-Alea-Signature") body := c.Body() h := hmac.New(sha256.New, []byte(secretKey)) h.Write(body) expectedSig := hex.EncodeToString(h.Sum(nil)) if receivedSig != expectedSig { return c.Status(fiber.StatusForbidden).JSON(fiber.Map{ "error": "invalid signature", }) } return c.Next() } } // Then update your route: