fix(task12): 修复前端登录租户编码透传、补充 tenant_admin 角色迁移与外部 API 测试脚本

- admin-web/api/client.ts: 请求拦截器仅在未显式传入 X-Tenant-Code 时使用 localStorage 默认值
- admin-web/api/account.ts: login 显式携带租户编码请求头,解决浏览器登录 401
- db/migration/V10: 新增 tenant_admin 平台角色,供外部 API 测试创建租户管理员
- scripts/test-external-api.sh: 创建租户后自动创建管理员并登录,后续接口使用 Bearer Token
- docs/superpowers/plans: 提交总体规划与 Task 12 测试计划
This commit is contained in:
2026-07-07 16:08:20 +08:00
parent cc4e5bcc2f
commit 24a70eb530
5 changed files with 1365 additions and 30 deletions

View File

@@ -1,7 +1,9 @@
import client from './client'
export function login(data: { tenantCode: string; username: string; password: string }) {
return client.post('/api/v1/account/login', data)
return client.post('/api/v1/account/login', data, {
headers: { 'X-Tenant-Code': data.tenantCode },
})
}
export function createTenant(data: { tenantCode: string; tenantName: string }) {

View File

@@ -13,8 +13,10 @@ client.interceptors.request.use((config) => {
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
const tenantCode = localStorage.getItem('mci-tenant-code') || 'default'
config.headers['X-Tenant-Code'] = tenantCode
if (!config.headers['X-Tenant-Code']) {
const tenantCode = localStorage.getItem('mci-tenant-code') || 'default'
config.headers['X-Tenant-Code'] = tenantCode
}
return config
})