This commit is contained in:
Ravi Prasad
2026-05-05 22:35:18 -05:00
parent cd7976040c
commit 70387ded4f
4 changed files with 33 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
package middleware
import (
"time"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/limiter"
)
func RateLimiter() fiber.Handler {
return limiter.New(limiter.Config{
Max: 20,
Expiration: 1 * time.Minute,
KeyGenerator: func(c *fiber.Ctx) string {
if ip := c.Get("X-Real-IP"); ip != "" {
return ip
}
return c.IP()
},
LimitReached: func(c *fiber.Ctx) error {
return c.Status(fiber.StatusTooManyRequests).JSON(fiber.Map{
"error": "Rate limit exceeded. Try again later.",
})
},
})
}