docs: 定义 Admin 登录与账号管理基线 (#49)
This commit is contained in:
@@ -46,6 +46,31 @@
|
||||
- `[必须]` `handler/web` 和 `handler/api` **分开**:
|
||||
页面出错要渲染错误页,接口出错要返回 JSON;页面要 CSRF,接口要认证。
|
||||
混在一起迟早写错。
|
||||
- `[必须]` Web 登录中间件只挂在 `handler/web` 路由组,不能挂到整个 Gin Engine。
|
||||
`/api/v1/client/*` 本阶段保持原有接口行为,不能返回登录页或 302 重定向。
|
||||
|
||||
### 2.1 登录与路由边界
|
||||
|
||||
```text
|
||||
公开网页
|
||||
├── GET/POST /setup 仅数据库没有用户时可用
|
||||
├── GET/POST /login
|
||||
└── /static/*
|
||||
|
||||
需要登录的网页
|
||||
├── /shopee /pdd /syb /tasks /clients
|
||||
├── POST /logout
|
||||
└── /users 仅管理员
|
||||
|
||||
保持原样的 Client API
|
||||
└── /api/v1/client/*
|
||||
```
|
||||
|
||||
- `Session` 是服务器保存的网页登录状态,浏览器只持有随机 Cookie。
|
||||
- 没有任何用户时,业务网页跳转到 `/setup`;初始化完成后 `/setup` 的服务端处理永久拒绝再次创建管理员。
|
||||
- 有用户但未登录时,业务网页跳转到 `/login`;API 继续返回原有 JSON 或 `204`。
|
||||
- Handler 从中间件写入的当前用户读取身份,不信任表单里的 `user_id` 或 `role`。
|
||||
- 采购员可以使用现有业务页面,但访问 `/users` 必须返回 `403`。
|
||||
|
||||
## 3. 目录
|
||||
|
||||
@@ -56,6 +81,8 @@ admin/
|
||||
├── config/ 端口、路径、超时
|
||||
├── handler/
|
||||
│ ├── web/ 五个模块的页面
|
||||
│ │ ├── auth.go 初始化、登录、退出
|
||||
│ │ ├── user.go 管理员维护采购员
|
||||
│ │ ├── shopee.go
|
||||
│ │ ├── syb.go
|
||||
│ │ ├── task.go
|
||||
@@ -70,6 +97,7 @@ admin/
|
||||
│ └── clientreg.go 客户端注册与在线判断
|
||||
├── repository/
|
||||
│ ├── db.go 连接、迁移
|
||||
│ ├── user.go 用户和 Web Session
|
||||
│ ├── shopee.go
|
||||
│ ├── syb.go
|
||||
│ ├── task.go
|
||||
@@ -90,6 +118,10 @@ admin/
|
||||
```text
|
||||
templates/
|
||||
├── layout.html 整体骨架:导航 + 内容占位 + 状态条
|
||||
├── auth/
|
||||
│ ├── setup.html 首次管理员初始化
|
||||
│ └── login.html
|
||||
├── user/list.html 采购员账号管理
|
||||
├── shopee/
|
||||
│ ├── list.html 表格页
|
||||
│ └── edit_modal.html 编辑弹窗(含 PDD 链接和采集按钮)
|
||||
@@ -216,6 +248,8 @@ handler 渲染结果页:导入 5195 商品 / 6092 SKU,失败 0 行
|
||||
- Admin 是任务的创建者和分配者,Client 是执行者。
|
||||
- Admin **不知道** Client 执行到哪一步(没有心跳,是有意的)。
|
||||
- Client 提交结果时,Admin **无条件接受**,哪怕任务已取消或已重派。
|
||||
- Admin 用户登录与 Client 身份是两套边界。Web Session 不传给 Client,
|
||||
Web 登录中间件也不覆盖 `/api/v1/client/*`。
|
||||
- 详见 [04 Client 接口实现](04-client-api.md)。
|
||||
|
||||
## 9. 相关文档
|
||||
|
||||
Reference in New Issue
Block a user