diff --git a/docs/im/IM-登录失败锁定移动端对接文档.md b/docs/im/IM-登录失败锁定移动端对接文档.md index 58d69a9..f68dae3 100644 --- a/docs/im/IM-登录失败锁定移动端对接文档.md +++ b/docs/im/IM-登录失败锁定移动端对接文档.md @@ -28,7 +28,7 @@ | 场景 | code | text | params | |---|---|---|---| | 密码错误,未达阈值 | 401 | `authentication failed` | — | -| 密码错误达到阈值,触发锁定 | **429** | `登录错误次数过多,账号已锁定,请 N 分钟后再试` | `{"what":"auth","retry_after_seconds":60}` | +| 密码错误达到阈值,触发锁定 | **429** | `登录错误次数过多,账号已锁定,请 N 后再试`(N 按剩余时长显示:不足 1 分钟为「1 分钟以内」,不足 1 小时为「1 小时以内」,不足 1 天为「N 小时」,其他为「N 天」) | `{"what":"auth","retry_after_seconds":60}` | | 锁定期间再次登录 | **429** | 同上(N 随剩余时间递减) | 同上 | | 登录成功 | 200 | `ok` | 正常 auth 信息 | @@ -40,13 +40,13 @@ // 第 2 次错误密码(达到阈值) {"ctrl": {"id": "t1", "code": 429, - "text": "登录错误次数过多,账号已锁定,请 1 分钟内再试", + "text": "登录错误次数过多,账号已锁定,请 1 分钟以内再试", "params": {"what": "auth", "retry_after_seconds": 60}, "ts": "..."}} // 锁定期间(约 12 秒后)正确密码登录,同样被拒绝且剩余时间递减 {"ctrl": {"id": "t1", "code": 429, - "text": "登录错误次数过多,账号已锁定,请 1 分钟内再试", + "text": "登录错误次数过多,账号已锁定,请 1 分钟以内再试", "params": {"what": "auth", "retry_after_seconds": 48}, "ts": "..."}} ``` @@ -56,7 +56,7 @@ | 字段 | 类型 | 说明 | |---|---|---| | `code` | int | HTTP 语义状态码。**429 = 账号锁定**,与 401(密码错误)区分 | -| `text` | string | **面向用户展示的完整中文文案,含剩余分钟数(向下取整);不足 1 分钟显示「1 分钟内再试」**。客户端直接展示即可,无需自行拼接时间 | +| `text` | string | **面向用户展示的完整中文文案,剩余时长自动格式化:不足 1 分钟显示「1 分钟以内」,不足 1 小时显示「1 小时以内」,不足 1 天按小时(向下取整),其他按天(向下取整)**。客户端直接展示即可,无需自行拼接时间 | | `params.retry_after_seconds` | int | 剩余锁定秒数(向上取整),可用于 UI 倒计时/禁用登录按钮 | | `params.what` | string | 固定 `auth`,表示错误发生在认证环节 |