From dd84e50429ca236063212ebecfca98141a46b1f0 Mon Sep 17 00:00:00 2001 From: bujinyuan Date: Mon, 2 Mar 2026 14:35:48 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=B0=86=E5=89=8D=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E4=B8=A5=E6=A0=BC=E5=88=86=E7=A6=BB=E8=A7=84?= =?UTF-8?q?=E5=88=99=E6=8F=90=E5=8D=87=E4=B8=BA=E6=9C=80=E9=AB=98=E4=BC=98?= =?UTF-8?q?=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 project-context.mdc 中明确: - 前台 API 路径:/api/v1/auth/* 等 - 管理端 API 路径:/api/v1/admin/* 下 - 禁止任何混用,新增功能必须先确认归属 Made-with: Cursor --- .cursor/rules/project-context.mdc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.cursor/rules/project-context.mdc b/.cursor/rules/project-context.mdc index 1149bfd..c1c93cd 100644 --- a/.cursor/rules/project-context.mdc +++ b/.cursor/rules/project-context.mdc @@ -44,12 +44,17 @@ EchoChat 是一个实时音视频通讯平台,包含三个子项目: > 详细规范见 `docs/conventions/frontend-backend-integration.md` -1. **错误提示统一**:前端所有 HTTP 错误提示必须优先使用后端 `data.message`,禁止硬编码覆盖后端信息。Fallback 文案仅在后端无响应体时使用 -2. **HTTP 状态码语义**:后端必须返回正确的 HTTP 状态码(200/400/401/403/404/500),前端按状态码分类处理 -3. **安全防护**:后端登录接口对"用户不存在"与"密码错误"统一返回 401 + "账号或密码错误",禁止通过不同错误码泄露用户是否存在 -4. **401 场景区分**:前端拦截器区分「登录/注册请求的 401」(仅提示错误)和「已认证请求的 401」(清 Token + 跳转登录页) -5. **响应格式一致**:后端所有响应必须使用 `utils.Response*` 系列函数,保证统一的 `{ code, message, data, trace_id, time }` 结构 -6. **业务错误映射**:后端 Controller 的 `handleError` 函数必须覆盖所有已知业务错误,不能忽略 error(`_`) +1. **前后台路由严格分离(最高优先级)**: + - 前台用户端 API:`/api/v1/auth/*`、`/api/v1/im/*`、`/api/v1/meeting/*` 等 + - 后台管理端 API:`/api/v1/admin/auth/*`、`/api/v1/admin/users/*` 等 + - **禁止任何混用**:admin 前端不得调用 `/api/v1/auth/*`,frontend 不得调用 `/api/v1/admin/*` + - 新增功能时必须先确认归属哪端,使用对应的路由前缀 +2. **Token Redis 存储隔离**:按 `clientType` 隔离:`echo:auth:token:{frontend|admin}:{user_id}`,JWT Claims 包含 `client_type` 字段 +3. **错误提示统一**:前端所有 HTTP 错误提示必须优先使用后端 `data.message`,禁止硬编码覆盖后端信息 +4. **安全防护**:后端登录接口对"用户不存在"与"密码错误"统一返回 401 + "账号或密码错误" +5. **401 场景区分**:前端拦截器区分「登录请求的 401」(仅提示错误)和「已认证请求的 401」(清 Token + 跳转登录页) +6. **响应格式一致**:后端所有响应必须使用 `utils.Response*` 系列函数 +7. **业务错误映射**:后端 Controller 的 `handleError` 函数必须覆盖所有已知业务错误,不能忽略 error(`_`) ## 设计系统