Appearance
图形与短信验证码
注册图形验证码
GET /agent/login/joincaptcha
返回 JPEG 图片,并把验证码写入当前浏览器 Session。注册或发送短信验证码前调用;验证码读取后即失效,需在同一浏览器会话中提交。
请求可附加任意随机查询参数避免浏览器缓存,例如 ?rand=<随机数>。响应不是 JSON,Content-Type 为 image/jpeg。
登录图形验证码
GET /agent/login/logincaptcha
返回登录用 JPEG 验证码,并写入当前 Session。提交 /agent/login/check 时传入 captcha。
发送注册短信验证码
POST /agent/login/smscaptcha
仅在系统开启短信注册验证时使用。
| 字段 | 位置 | 类型 | 必填 | 用途 |
|---|---|---|---|---|
mobile | body | string | 是 | 中国大陆手机号。 |
captcha | body | string | 是 | 刚获取的注册图形验证码。 |
成功响应:
json
{ "code": 0, "msg": "", "data": [] }短信验证码保存于当前 Session,有效期 5 分钟;同一会话或 IP 的发送频率由服务端限制。
实现要点
图形验证码与登录/注册请求必须使用同一个浏览器 Session。图片接口每次调用都会更新该 Session 内保存的验证码,因此刷新图片后,旧输入立即失效。
html
<img id="captcha" src="/agent/login/logincaptcha?rand=1" alt="登录验证码">js
function refreshLoginCaptcha() {
document.querySelector('#captcha').src =
`/agent/login/logincaptcha?rand=${Date.now()}`
}| 场景 | 正确处理 |
|---|---|
| 登录或注册提交失败 | 清空验证码输入并刷新对应图片。 |
| 切换注册/登录表单 | 分别请求 joincaptcha 或 logincaptcha,不要混用。 |
| 短信发送成功 | 在 5 分钟内完成注册;过期后重新请求短信验证码。 |
| 短信发送被限流 | 展示服务端 msg,禁用发送按钮至合理的倒计时结束。 |
验证码图片接口是 JPEG,不返回 JSON;不要把它当成普通 API 响应解析。