错误码
REST HTTP
| 码 | 场景 |
|---|---|
| 200 | 成功 |
| 400 | 参数/状态错误 |
| 401 | 未登录 / 码无效 / 无权 |
| 500 | 服务器错误 |
verify-code
| error | 原因 |
|---|---|
| Invalid player ID | UUID 格式不对 |
| Invalid code format | 非 6 位数字 |
| Invalid or expired login code | 码不匹配或未发布 |
Admin
| error | 原因 |
|---|---|
| 请先登录 | 无 JWT |
| 无权访问 | 非 admin 或 display 调 admin API |
| 当前有进行中的游戏轮次... | status playing/ended |
| 请提供题目内容和两个选项 | body 缺字段 |
submit-answer / Socket
| error | 原因 |
|---|---|
| 请选择A或B选项 | answer 非法 |
| 当前没有进行中的游戏 | 无 active 题 |
| 您已被淘汰,无法继续答题 | 不在 survivors |
| 无权访问 | Admin/Display 答题 |
Socket 连接
| 错误 | 原因 |
|---|---|
| 未提供 token | auth.token 缺失 |
| token 缺少邮箱 | JWT 无 email |
| 认证失败 | 密钥/过期/issuer 不匹配 |
玩家登录 UI
| 提示 | 原因 |
|---|---|
| 请输入 6 位数字登录码 | 前端格式校验 |
| 登录码无效或已过期,请查看现场投屏 | verify-code 失败 |
| 邮箱或密码错误 | staff-credentials 失败 |
调试顺序
JWT_SECRET前后端一致- Staff 密码 env 已设且邮箱在白名单
- 登录码是否已 publish 且未 close
- Redis
game:main_room:login_code存在 FRONTEND_URL/NEXT_PUBLIC_API_BASE正确