diff --git a/docs/API_INTEGRATION.md b/docs/API_INTEGRATION.md index 2de2f48..d5e0fc4 100644 --- a/docs/API_INTEGRATION.md +++ b/docs/API_INTEGRATION.md @@ -269,6 +269,8 @@ type LoginReq struct { - `fs list /Class/Other` → 403 ✅、`fs list /Book` → 403 ✅(未授权正确拒绝) - **关键坑(之前失败的原因)**:`base_path` 若设成 `/Class`(而非 `/`),scope 绝对路径 `/Class/Forex` 会被 `JoinPath` 拼成 `/Class/Class/Forex` → 全部 403。**必须 `/`**。 + - **运维铁律**:W1 的 `base_path` 必须**写死 `'/'`**,不要从 NocoDB 字段读(否则库存 `/Class` 旧值会复发)。 + 已在 W1 `Prepare Provision Payload` 硬编码 `basePath: '/'`(commit 1ac1f17)。 - 注意:`CreateUser` 里有 `u.BasePath = scopes[0].Path` 的覆盖逻辑,但仅当 role **有 scope** 时触发; 若创建时先建空 role(无 scope),base_path 不会被覆盖。W1 顺序:先建空 role → 建 user (base_path=`/`)→ W2 再填 scope。实测当 base_path 被显式设为 `/` 且 role 后续填 scope 时,