fix: 修正令牌鉴权拦下静态资源、全量地图数据每 20 秒重传两个问题
- 静态资源改到鉴权中间件之前:浏览器加载 index.html 时带的 ?token= 不会附加到 style.css / app.js 的子请求上,原先一并拦截会导致页面缺样式缺脚本 - 全量地图数据(实测 11.5 万区块约 1MB JSON)改为按需拉取: 勾选「显示全部邦国」、手动刷新地图或超过 5 分钟时才拉全量, 定时刷新只拉己方领土(约 4KB)并复用上一次的全量数据 - 配置热更新时直接替换控制器配置对象,去掉多余的一层浅合并 测试:新增静态资源可加载的回归用例,154 个用例全绿。
这个提交包含在:
+9
-1
@@ -142,7 +142,7 @@ test('HTTP 接口:/api/status、/api/config、/api/map 可访问', async () =>
|
||||
}
|
||||
});
|
||||
|
||||
test('HTTP 接口:配置令牌后拒绝无令牌请求', async () => {
|
||||
test('HTTP 接口:配置令牌后拒绝无令牌的 API 请求,但静态资源仍可加载', async () => {
|
||||
const { webConsole } = setupConsole();
|
||||
webConsole.token = 'secret-token';
|
||||
await webConsole.start();
|
||||
@@ -156,6 +156,14 @@ test('HTTP 接口:配置令牌后拒绝无令牌请求', async () => {
|
||||
|
||||
const viaHeader = await fetch(base + '/api/status', { headers: { 'X-Auth-Token': 'secret-token' } });
|
||||
assert.strictEqual(viaHeader.status, 200);
|
||||
|
||||
// 静态资源不带令牌也必须能加载,否则浏览器里控制台页面会缺样式 / 缺脚本
|
||||
const html = await fetch(base + '/');
|
||||
assert.strictEqual(html.status, 200);
|
||||
const css = await fetch(base + '/style.css');
|
||||
assert.strictEqual(css.status, 200);
|
||||
const js = await fetch(base + '/app.js');
|
||||
assert.strictEqual(js.status, 200);
|
||||
} finally {
|
||||
await webConsole.stop();
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户