feat(client): 初始化前端壳与鉴权守卫(P1-5)
- 技术栈:React 18 + TypeScript + Vite + Tailwind - API 层:ApiError + 401 自动刷新 + single-flight 重试 - 鉴权:内存 Access Token + Cookie Refresh + 启动 bootstrap - RBAC:权限映射 + RequireAuth/RequirePermission 路由守卫 - 布局:OA 工作台壳层 + 侧边栏 + 5 个占位页面 - 样式:复用 hyb-web 视觉 token(单向同步) - 文档:新增 client README,补充 server 联调说明
这个提交包含在:
+48
@@ -0,0 +1,48 @@
|
||||
# hyb-oa Client Runbook (P1-5)
|
||||
|
||||
## 1. 前置条件
|
||||
- Node.js >= 20
|
||||
- 后端服务可用(`http://127.0.0.1:3000`)
|
||||
|
||||
## 2. 安装与启动
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa/client
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
默认前端地址:`http://127.0.0.1:5173`
|
||||
|
||||
## 3. 本地联调建议顺序
|
||||
```bash
|
||||
cd /home/shunli/Projects/hyb-oa
|
||||
|
||||
docker compose up -d db
|
||||
|
||||
cd /home/shunli/Projects/hyb-oa/server
|
||||
npm run prisma:migrate:deploy
|
||||
npm run seed:dev
|
||||
npm run dev
|
||||
|
||||
cd /home/shunli/Projects/hyb-oa/client
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## 4. 鉴权与会话说明
|
||||
- Access Token 仅保存在内存,不写入 localStorage/sessionStorage。
|
||||
- Refresh Token 由后端通过 HttpOnly Cookie 维护。
|
||||
- 前端在 401 时自动调用 `/api/auth/refresh` 并重试一次请求。
|
||||
- 登录与刷新请求都会附带 `x-device-fingerprint`。
|
||||
|
||||
## 5. 风格资源复用策略(锁定)
|
||||
- 视觉 Token 来源:`/home/shunli/Projects/hyb-web`。
|
||||
- 采用“复制到 client + 单向同步”,不做跨仓软链与自动联动。
|
||||
- 如需同步风格,请记录来源 commit 并通过评审。
|
||||
|
||||
## 6. 可用脚本
|
||||
```bash
|
||||
npm run dev
|
||||
npm run typecheck
|
||||
npm run build
|
||||
npm run preview
|
||||
```
|
||||
在新工单中引用
屏蔽一个用户