Compare commits

...
Author SHA1 Message Date
saint a2a2c7e2d5 merge: synchronize retrieval export workspace to main 2026-10-16 23:21:10 +08:00
saint f8f4a412d9 Merge pull request 'feat: add retrieval history export workspace' (#36) from feat/retrieval-export-workspace into dev 2026-10-16 23:20:32 +08:00
saint 8a6c0443b5 Merge pull request 'release: synchronize retrieval export to main' (#35) from release/retrieval-export-main into main 2026-10-16 23:15:19 +08:00
saint 1a532948f9 merge: synchronize retrieval export to main 2026-10-16 23:14:40 +08:00
saint 9c27dbfd29 Merge pull request 'release: synchronize document lifecycle to main' (#32) from release/document-lifecycle-main into main 2026-10-16 23:02:39 +08:00
saint ec635281a7 merge: synchronize document lifecycle to main 2026-10-16 23:02:03 +08:00
saint 0a8d15abc1 Merge pull request 'release: synchronize knowledge intake fix to main' (#30) from release/knowledge-intake-main into main 2026-10-16 22:50:08 +08:00
saint 66ee56fcc6 merge: synchronize knowledge intake fix to main 2026-10-16 22:49:19 +08:00
saint e3d1b18776 Merge pull request 'release: integrate dev into main' (#28) from release/main-dev-integration into main 2026-10-16 22:43:45 +08:00
saint 0f36f7403b merge: integrate dev into main 2026-10-16 20:33:13 +08:00
saint 460f120364 feat: add auth API clients and view scaffolding 2026-10-15 21:29:21 +08:00
saint bca123303e docs: add phase one execution plan 2026-10-15 19:42:57 +08:00
saint da80fffebf docs: assign Codex as frontend reviewer 2026-10-15 17:29:11 +08:00
saint 8481b4a403 docs: define pull request review policy 2026-10-15 17:27:36 +08:00
saint e374380ec0 docs: expand team execution guide 2026-10-15 17:23:55 +08:00
saint 7b614397bd docs: add team work plan 2026-10-15 17:19:09 +08:00
2 changed files with 25 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
# 用户系统与角色权限:前后端接口清单
当前后端未注册认证或管理员路由;前端只提供真实请求封装,任何 404、401、403 或 5xx 都会如实抛出,绝不创建本地假身份。
| 目标接口 | 方法 | 前端用途 | 后端待实现要求 |
|---|---:|---|---|
| `/api/auth/register` | POST | 注册 | 只创建 `user`;不得接受角色字段 |
| `/api/auth/login` | POST | 登录 | 建立 HttpOnly、Secure、SameSite Cookie 会话 |
| `/api/auth/logout` | POST | 退出 | 作废会话并清除 Cookie |
| `/api/auth/me` | GET | 刷新恢复会话 | 返回用户资料与 `user`/`admin` 角色 |
| `/api/users/me` | PATCH | 修改昵称/邮箱 | 只允许修改当前用户自己的基本资料 |
| `/api/auth/change-password` | POST | 修改密码 | 验证旧密码并进行安全哈希 |
| `/api/admin/users` | GET | 用户管理 | 必须由后端校验 `admin` 角色 |
## 前端待接入条件
现有工程尚未安装 `vue-router`。在用户安装该依赖并确认认证接口可用后,前端将接入路由守卫:未登录跳转登录页、成功后回跳、管理员路由额外检查 `role === 'admin'`。前端只用于体验层控制;知识库、来源、实验、用户管理的最终授权必须由 FastAPI 校验。
@@ -0,0 +1,8 @@
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { getUsers } from '../services/auth'
import type { CurrentUser } from '../types/auth'
const users=ref<CurrentUser[]>([]), error=ref('')
onMounted(async()=>{try{users.value=await getUsers()}catch(e){error.value=e instanceof Error?e.message:'无权读取用户列表'}})
</script>
<template><main><h1>用户管理</h1><p v-if="error">{{error}}</p><table v-else><tr><th>用户名</th><th>昵称</th><th>邮箱</th><th>角色</th></tr><tr v-for="user in users" :key="user.id"><td>{{user.username}}</td><td>{{user.nickname}}</td><td>{{user.email}}</td><td>{{user.role}}</td></tr></table></main></template>