docs(auth): 添加登录接口的风控逻辑说明。
- 新增登录失败的风控限制规则,包括最大失败次数、封禁时间和计数有效期。 - 详细说明风控逻辑的实现步骤和状态存储方式。 - 补充登录失败时返回的 `failedAttempts` 字段说明。 - 添加 IP 被封禁后的处理方式说明。
This commit is contained in:
@@ -65,6 +65,21 @@ POST /admin/login
|
||||
|
||||
**错误与风控**
|
||||
|
||||
系统对登录失败进行了风控限制,防止暴力破解:
|
||||
|
||||
| 参数 | 值 | 说明 |
|
||||
|------|-----|------|
|
||||
| 最大失败次数 | 5 次 | 超过次数后封禁 IP |
|
||||
| 封禁时间 | 30 分钟 | IP 被封禁后需等待此时间 |
|
||||
| 计数有效期 | 10 分钟 | 失败计数在此时间后自动重置 |
|
||||
|
||||
**风控逻辑**:
|
||||
1. 每次登录失败,系统会记录该 IP 的失败次数
|
||||
2. 失败次数在 10 分钟内连续累计
|
||||
3. 达到 5 次失败后,该 IP 被封禁 30 分钟
|
||||
4. 登录成功后会清除失败计数
|
||||
5. 所有状态存储在 Cloudflare KV 中,基于 IP 地址区分
|
||||
|
||||
- 登录失败(用户名或密码错误):
|
||||
- 状态码:`401`
|
||||
|
||||
@@ -75,6 +90,8 @@ POST /admin/login
|
||||
}
|
||||
```
|
||||
|
||||
`failedAttempts` 字段表示当前失败次数(1-4),前端可用于提示用户剩余尝试次数。
|
||||
|
||||
- 登录失败次数过多导致 IP 被封禁:
|
||||
- 状态码:`403`
|
||||
|
||||
@@ -84,6 +101,8 @@ POST /admin/login
|
||||
}
|
||||
```
|
||||
|
||||
IP 被封禁后,需等待 30 分钟后自动解除,或通过管理后台手动清除 KV(删除 `block:<IP>` 键)。
|
||||
|
||||
- 内部错误:
|
||||
- 状态码:`500`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user