package middleware import ( "net/http" "github.com/freefire/jiang13-bbs/service" "github.com/gin-gonic/gin" ) // RateLimitMiddleware 速率限制中间件 func RateLimitMiddleware(rl *service.RateLimiter, rateType string) gin.HandlerFunc { return func(c *gin.Context) { key := rateType + ":" + c.ClientIP() if !rl.Allow(key) { c.AbortWithStatusJSON(http.StatusTooManyRequests, gin.H{"error": "请求过于频繁,请稍后再试"}) return } c.Next() } }