From 922c8d8ed260a0c6fb9100f3118449542363dc4d Mon Sep 17 00:00:00 2001 From: biss Date: Tue, 29 Sep 2026 11:02:42 +0800 Subject: [PATCH] Fix captcha rendering and refresh rate limit --- packages/CaptchaKit | 2 +- src/Jiaowu.Api/Controllers/AuthController.cs | 2 +- src/Jiaowu.Api/Program.cs | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/CaptchaKit b/packages/CaptchaKit index 8964692..cd37690 160000 --- a/packages/CaptchaKit +++ b/packages/CaptchaKit @@ -1 +1 @@ -Subproject commit 8964692448bccfa0b52463ba202498fae8c2065c +Subproject commit cd37690d97826a4ac06a78071ed3a9befc16053c diff --git a/src/Jiaowu.Api/Controllers/AuthController.cs b/src/Jiaowu.Api/Controllers/AuthController.cs index c17d1f4..2120d16 100644 --- a/src/Jiaowu.Api/Controllers/AuthController.cs +++ b/src/Jiaowu.Api/Controllers/AuthController.cs @@ -138,7 +138,7 @@ public sealed class AuthController( } [AllowAnonymous] - [EnableRateLimiting("public-auth")] + [EnableRateLimiting("captcha-challenge")] [HttpPost("login/captcha")] public async Task> CreateLoginCaptcha(CancellationToken cancellationToken) { diff --git a/src/Jiaowu.Api/Program.cs b/src/Jiaowu.Api/Program.cs index 32346ad..52da8e3 100644 --- a/src/Jiaowu.Api/Program.cs +++ b/src/Jiaowu.Api/Program.cs @@ -598,6 +598,16 @@ builder.Services.AddRateLimiter(options => QueueLimit = 0, AutoReplenishment = true })); + options.AddPolicy("captcha-challenge", context => + RateLimitPartition.GetFixedWindowLimiter( + context.Connection.RemoteIpAddress?.ToString() ?? "unknown", + _ => new FixedWindowRateLimiterOptions + { + PermitLimit = 30, + Window = TimeSpan.FromMinutes(5), + QueueLimit = 0, + AutoReplenishment = true + })); options.AddPolicy("token-refresh", context => RateLimitPartition.GetFixedWindowLimiter( context.Connection.RemoteIpAddress?.ToString() ?? "unknown",