diff --git a/common/api.js b/common/api.js index 46ed467..febdb3d 100644 --- a/common/api.js +++ b/common/api.js @@ -113,9 +113,7 @@ var default_api = 'https://api.global-interaction.com/'; ); if (payloadUserID) return payloadUserID; - var textUserID = firstLongNumericID( - decodeBase64URLText(parts[i]) - ); + var textUserID = firstLongNumericID(decodeBase64URLText(parts[i])); if (textUserID) return textUserID; } return ''; @@ -254,6 +252,16 @@ var default_api = 'https://api.global-interaction.com/'; return appCode === 'yumi' || appCode === 'aslan' ? appCode : 'lalu'; } + function backendAppCode(appCode) { + appCode = String(appCode || 'lalu') + .trim() + .toLowerCase(); + // H5 的 app_code 同时承载历史品牌主题和后端租户;yumi/aslan 只用于页面主题,后端当前只有 lalu/huwaa 租户。 + // 请求头必须收敛到后端已注册的 app_code,否则 gateway 会在 AppRegistryService.ResolveApp 阶段直接返回 INVALID_ARGUMENT。 + if (appCode === 'yumi' || appCode === 'aslan') return 'lalu'; + return appCode || 'lalu'; + } + function applyAppTheme(appCode) { if (!window.document || !window.document.documentElement) return; window.document.documentElement.setAttribute( @@ -446,9 +454,10 @@ var default_api = 'https://api.global-interaction.com/'; ); var token = getAccessToken(); var appCode = getAppCode(); + var requestAppCode = backendAppCode(appCode); var url = buildURL(path, opts.query); if (token) headers.Authorization = 'Bearer ' + token; - if (appCode) headers['X-App-Code'] = appCode; + if (requestAppCode) headers['X-App-Code'] = requestAppCode; if (!shouldPersist() && isSameOriginURL(url)) headers['Cache-Control'] = 'no-cache';