837fc9bcc0
用真实 admin 凭据打本地后端完成登录/cookie 会话/current-user/菜单树/401/ 权限路由 smoke(8 场景全过)。smoke 暴露前端登出 URL 错误:session.ts 走 /api/admin/logout(后端无此映射,500),改为 auth 模块根端点 POST /logout; 同步修正 task-25/36 断言。注:当前本地后端 POST /logout 亦返回 500,属 Java 侧缺陷,待后端模块修复后补登出 E2E。
21 lines
916 B
TypeScript
21 lines
916 B
TypeScript
import { http } from './http'
|
|
import { parseCurrentUser, parseMenuTree } from './session-model'
|
|
import type { AdminMenuNode, AdminUser, ApiEnvelope } from '../types/admin'
|
|
|
|
export async function fetchCurrentUser(): Promise<AdminUser> {
|
|
const { data } = await http.get<ApiEnvelope<{ item: AdminUser }> | AdminUser>('/api/admin/current-user')
|
|
return parseCurrentUser(data)
|
|
}
|
|
|
|
export async function fetchAdminMenuTree(): Promise<AdminMenuNode[]> {
|
|
const { data } = await http.get<
|
|
ApiEnvelope<{ items: AdminMenuNode[] }> | { items: AdminMenuNode[] } | AdminMenuNode[]
|
|
>('/api/admin/current-user/menus')
|
|
return parseMenuTree(data)
|
|
}
|
|
|
|
export async function logout(): Promise<void> {
|
|
// 登出走 auth 模块根端点 POST /logout(下发清除会话 cookie);旧 api/admin 前缀路径后端无映射。
|
|
await http.post('/logout', undefined, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
|
|
}
|