task-23(会话/菜单/权限): 实现当前用户请求适配 + 真后端 live 测试

session-model.parseCurrentUser 兼容 data:{item}/{item}/直接对象信封并校验 id;
session.ts fetchCurrentUser 复用;启用 allowImportingTsExtensions;npm run test:live
用 admin 账号真实登录打 18080 验证 current-user 与菜单树(023/024 live 全绿)。
This commit is contained in:
2026-09-05 13:52:02 +08:00
parent 7ae595c91a
commit d3154a48b8
6 changed files with 175 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
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> {
await http.post('/api/admin/logout', undefined, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
}