短信发送失败增加冷却防连点限流并配置trust proxy恢复真实客户端IP

This commit is contained in:
yml2213
2026-08-22 19:10:06 +08:00
parent 7e1c879c41
commit 90ff15b627
10 changed files with 59 additions and 0 deletions
@@ -40,6 +40,8 @@ import { hasWorkerSession, setWorkerSession } from '@/utils/worker-auth'
import { isWorkerPasswordStrong, WORKER_PASSWORD_RULE_MESSAGE } from '@/utils/worker-password'
const SMS_COUNTDOWN_SECONDS = 60
/** 发送失败也冷却一段时间再允许重试,避免连续点击触发服务端每分钟发送次数限制。 */
const SMS_FAILURE_COUNTDOWN_SECONDS = 15
const brandFeatures = [
{
@@ -147,6 +149,7 @@ export default function WorkerLoginPage() {
: `验证码已发送,${response.data.expiresInSeconds} 秒内有效`,
)
} catch (error) {
setLoginSmsCountdown(SMS_FAILURE_COUNTDOWN_SECONDS)
message.error(error instanceof Error ? error.message : '验证码发送失败')
} finally {
setLoading(false)
@@ -217,6 +220,7 @@ export default function WorkerLoginPage() {
: `验证码已发送,${response.data.expiresInSeconds} 秒内有效`,
)
} catch (error) {
setCountdown(SMS_FAILURE_COUNTDOWN_SECONDS)
message.error(error instanceof Error ? error.message : '验证码发送失败')
} finally {
setLoading(false)
@@ -239,6 +243,7 @@ export default function WorkerLoginPage() {
: `验证码已发送,${response.data.expiresInSeconds} 秒内有效`,
)
} catch (error) {
setResetCountdown(SMS_FAILURE_COUNTDOWN_SECONDS)
message.error(error instanceof Error ? error.message : '验证码发送失败')
} finally {
setLoading(false)