refactor(config): 七牛/微信密钥外置——AK/SK+微信AppID 入本地 app_config, domain/bucket 走远程配置
- app_config.json + AppConfig: qiniu_access_key/qiniu_secret_key/wechat_app_id/wechat_app_secret(扁平snake_case) - RemoteConfig.VersionFields + audio_domain/audio_bucket(4层可携带), VersionDecision + audioDomain/audioBucket - VersionResolver.resolve 复用 pickStr 解析 audioDomain/audioBucket(4层逐级回退) - QiniuToken.uploadToken(accessKey,secretKey,bucket) 改传参,去掉硬编码常量 - AudioProvider.doUpload: AK/SK取本地配置, domain/bucket取远程配置(cfg.resolve), URL用远程domain - WeChatApi.configure(appId) 注入AppID(去WX_APP_ID常量), EntryAbility.onCreate 从配置注入 - 更新 QiniuToken 单测传参 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
e5d8eeb3b1
commit
c39d8eb400
@@ -4,6 +4,7 @@ import { window } from '@kit.ArkUI';
|
||||
import { BusinessError } from '@kit.BasicServicesKit';
|
||||
import { EventBus } from 'common';
|
||||
import { WeChatApi } from 'feature_capabilities';
|
||||
import { ConfigManager } from 'domain_resource';
|
||||
import { AppEvents } from '../routes/AppRoutes';
|
||||
import { installErrorSink } from '../di/ErrorReporter';
|
||||
|
||||
@@ -19,7 +20,12 @@ export default class EntryAbility extends UIAbility {
|
||||
hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate');
|
||||
// 可观测(T-M5-06):安装错误上报 sink,打通 ErrorCenter → APM/Crash 通道
|
||||
installErrorSink();
|
||||
// 微信回调(冷启动经 want 拉回):交 SDK 解析 → 路由到 Share/Login 回调
|
||||
// 微信回调(冷启动经 want 拉回):先从本地 app_config 注入 AppID(不再硬编码),再交 SDK 解析
|
||||
try {
|
||||
WeChatApi.configure(ConfigManager.load(this.context).getLocal().wechatAppId);
|
||||
} catch (e) {
|
||||
hilog.warn(DOMAIN, 'testTag', 'configure WeChat appId failed: %{public}s', JSON.stringify(e));
|
||||
}
|
||||
WeChatApi.getInstance().handleWant(want);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,5 +9,9 @@
|
||||
"weburl": "",
|
||||
"gameconfig": "tsgames.daoqi88.cn-config_test-update_jsonv2_test",
|
||||
"other": "",
|
||||
"tuiguang": ""
|
||||
"tuiguang": "",
|
||||
"qiniu_access_key": "ngN3rFW1j8dn7ZGpATKl7mreaNmp2Ei_l9AIhkIf",
|
||||
"qiniu_secret_key": "6VXav9eqUCORJTYvTFOeTVRonAyk4Hrs-PIZ8jmZ",
|
||||
"wechat_app_id": "wxd2bd650e06bdfe58",
|
||||
"wechat_app_secret": ""
|
||||
}
|
||||
|
||||
@@ -5,16 +5,17 @@ import { util } from '@kit.ArkTS';
|
||||
export default function QiniuTokenTest() {
|
||||
describe('QiniuTokenTest', () => {
|
||||
it('token_has_three_parts_and_valid_policy', 0, async () => {
|
||||
const token: string = await QiniuToken.uploadToken();
|
||||
// AK/SK/bucket 现由调用方注入(本地 app_config + 远程 audio_bucket),单测用固定测试值
|
||||
const token: string = await QiniuToken.uploadToken('AK_TEST', 'SK_TEST', 'bk_test');
|
||||
const parts: string[] = token.split(':');
|
||||
expect(parts.length).assertEqual(3);
|
||||
expect(parts[0]).assertEqual('ngN3rFW1j8dn7ZGpATKl7mreaNmp2Ei_l9AIhkIf');
|
||||
expect(parts[0]).assertEqual('AK_TEST');
|
||||
expect(parts[1].length).assertEqual(28);
|
||||
const helper = new util.Base64Helper();
|
||||
const std: string = parts[2].replace(/-/g, '+').replace(/_/g, '/');
|
||||
const decoded: Uint8Array = helper.decodeSync(std);
|
||||
const policy: string = String.fromCharCode.apply(null, Array.from(decoded));
|
||||
expect(policy.indexOf('"scope":"gameaudio"') >= 0).assertTrue();
|
||||
expect(policy.indexOf('"scope":"bk_test"') >= 0).assertTrue();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user