Skip to content

错误码 ​

接口返回的 code 字段是业务错误码,和 HTTP 状态码不是一回事——HTTP 可能是 200,但 code 非 0 表示业务上失败了。

0 — 成功 ​

json
{ "code": 0, "msg": "success", "data": { ... } }

1xxx — 认证与账号 ​

码常量意思怎么处理
1001TOKEN_NOT_EXIST没带令牌去登录
1002TOKEN_WRONG令牌签名不对令牌被篡改或密钥换了,重新登录
1003TOKEN_EXPIRED令牌过期用 refresh_token 换新的
1010INVALID_PASSWORD密码错误提示用户
1011USER_NOT_FOUND用户不存在—
1012USERNAME_EXISTS用户名已被占用换个用户名
1013FORBIDDEN权限不足该角色没有这个权限
1014TOKEN_REVOKED令牌已吊销登出过或改过密码,重新登录
1015USER_BANNED账号被封联系管理员
1016USER_MUTED被禁言禁言期间不能发言
1017RATE_LIMITED请求太频繁等一会儿再试

1003 和 1014 的区别:1003 是自然过期,1014 是主动吊销(登出、改密码导致 token_version 变化)。

2xxx — 参数 ​

码常量意思
2001INVALID_PARAMS参数校验失败,msg 里会说哪里不对

3xxx — 资源 ​

码常量意思
3001NOT_FOUND资源不存在
3002ALREADY_EXISTS资源已存在

5xxx — 服务端 ​

码常量意思
5001INTERNAL_ERROR服务器内部错误,看服务端日志

6xxx — 语音服务 ​

码常量意思怎么修
6001SFU_NOT_CONFIGURED没配 SFU检查 LIVEKIT_HOST / LIVEKIT_KEY / LIVEKIT_SECRET
6002SFU_ERROR调 LiveKit 失败看 LiveKit 是不是活着、密钥对不对

7xxx — 第三方登录 ​

码常量意思
7001OAUTH_PROVIDER_NOT_FOUND这个平台没配置
7002OAUTH_PROVIDER_DISABLED配置了但被禁用
7003OAUTH_TOKEN_EXCHANGE_FAILED换 token 失败,多半是 secret 不对或回调地址不匹配
7004OAUTH_GET_USER_FAILED拿到 token 但取不到用户信息

8xxx — 邮件 ​

码常量意思
8001EMAIL_ALREADY_EXISTS邮箱已被注册
8002EMAIL_CODE_INVALID验证码不对
8003EMAIL_CODE_EXPIRED验证码过期
8004EMAIL_CODE_ALREADY_USED验证码用过了
8005EMAIL_SEND_TOO_FREQUENT发太频繁
8006EMAIL_SEND_FAILED发信失败,SMTP 配置有问题
8007EMAIL_NOT_VERIFIED邮箱未验证
8008EMAIL_CODE_MAX_ATTEMPTS验证码试错次数超了
8009EMAIL_NOT_CONFIGURED没配邮件服务
8010PASSWORD_RESET_DISABLED找回密码功能被关了

81xx — 存储 ​

码常量意思
8101STORAGE_NOT_CONFIGURED没配存储
8102STORAGE_ERROR存储操作失败
8103STORAGE_FILE_TOO_LARGE文件太大
8104STORAGE_FILE_TYPE_NOT_ALLOWED文件类型不允许

前端怎么处理 ​

一般按类别处理就够了:

ts
switch (Math.floor(code / 1000)) {
  case 1:
    // 认证问题:1003 尝试刷新,其他跳登录
    break;
  case 2:
    // 参数问题:把 msg 显示给用户
    break;
  case 5:
    // 服务端问题:提示稍后再试
    break;
}

几个特殊情况要单独处理:

  • 1013 权限不足 → 提示「你没有权限」,不要跳登录
  • 1015 账号被封 → 跳到一个说明页,不要一直重试
  • 1017 限流 → 倒计时后再让用户操作

下一步 ​

基于 Apache 2.0 许可开源