From dd2a2671942021227ed506d62a7cc51db05b7a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Fri, 30 Jan 2026 01:59:45 +0800 Subject: [PATCH] =?UTF-8?q?```=20refactor(login):=20=E6=8F=90=E5=8F=96?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AFIP=E5=88=B0=E5=8F=98=E9=87=8F?= =?UTF-8?q?=E4=BB=A5=E4=BC=98=E5=8C=96=E9=80=9F=E7=8E=87=E9=99=90=E5=88=B6?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 r.GetClientIp() 调用结果存储到 ip 变量中 - 在 AllowVisitByIP4 方法调用中使用该变量 - 保持相同的速率限制功能,但提高代码可读性 ``` --- login/internal/cmd/cmd.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/login/internal/cmd/cmd.go b/login/internal/cmd/cmd.go index 5001733e..52e8485f 100644 --- a/login/internal/cmd/cmd.go +++ b/login/internal/cmd/cmd.go @@ -81,9 +81,10 @@ func Limiter(r *ghttp.Request) { // 3. 为任意键 "some-key" 获取一个速率限制器 // - rate.Limit(2): 表示速率为 "每秒2个请求" // - 2: 表示桶的容量 (Burst),允许瞬时处理2个请求 - - if !limiter.AllowVisitByIP4(r.GetClientIp()) { + ip := r.GetClientIp() + if !limiter.AllowVisitByIP4(ip) { r.Response.WriteStatusExit(429) // Return 429 Too Many Requests + r.ExitAll() } r.Middleware.Next()