@tmsfe/tms-core 0.0.154 → 0.0.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/encrypt/encrypt-util.ts +6 -10
- package/src/encrypt/index.ts +2 -9
- package/src/index.js +1 -0
- package/src/request.js +11 -6
package/package.json
CHANGED
|
@@ -74,12 +74,7 @@ const baseUtil = {
|
|
|
74
74
|
}
|
|
75
75
|
return '';
|
|
76
76
|
},
|
|
77
|
-
getClientEncryptOpen: (): boolean =>
|
|
78
|
-
if (wx.$_encryptEnvInfo) {
|
|
79
|
-
return wx.$_encryptEnvInfo.requestEncryptOpen;
|
|
80
|
-
}
|
|
81
|
-
return false;
|
|
82
|
-
},
|
|
77
|
+
getClientEncryptOpen: (): boolean => wx.$_encryptEnvInfo?.requestEncryptOpen,
|
|
83
78
|
BaseRespFac: class BaseRespFac<T> implements BaseResp<T> {
|
|
84
79
|
success: boolean;
|
|
85
80
|
msg: string;
|
|
@@ -92,12 +87,12 @@ const baseUtil = {
|
|
|
92
87
|
}
|
|
93
88
|
},
|
|
94
89
|
};
|
|
95
|
-
let composeParamsFunc = null;
|
|
90
|
+
let composeParamsFunc = null; // 请求参数处理函数,加密初始化调用后之后会赋值
|
|
96
91
|
// 加密工具
|
|
97
92
|
const eccUtil = {
|
|
98
93
|
_refreshPromise: null,
|
|
99
94
|
_refreshPubKeyInfo: async (forceRefresh: boolean): Promise<boolean> => {
|
|
100
|
-
//
|
|
95
|
+
// 未完成初始化,则不支持秘钥刷新
|
|
101
96
|
if (!composeParamsFunc) {
|
|
102
97
|
return false;
|
|
103
98
|
}
|
|
@@ -147,12 +142,13 @@ const eccUtil = {
|
|
|
147
142
|
const keyPair = ecc.box.keyPair(); // 生成客户端公钥私钥
|
|
148
143
|
eccUtil._privateKeyInfo = {
|
|
149
144
|
serverPubId: serverPubInfo.pubId, // 服务端公钥id
|
|
150
|
-
sharedByte: ecc.box.before(baseUtil.decUrl(serverPubInfo.pubKey), keyPair.secretKey),
|
|
145
|
+
sharedByte: ecc.box.before(baseUtil.decUrl(serverPubInfo.pubKey), keyPair.secretKey), // 共享秘钥
|
|
151
146
|
clientPublicKey: baseUtil.encUrl(keyPair.publicKey), // base64 url safe 编码后的客户端公钥
|
|
152
147
|
};
|
|
153
148
|
}
|
|
154
149
|
return eccUtil._privateKeyInfo;
|
|
155
150
|
},
|
|
151
|
+
// 解析gwCode
|
|
156
152
|
resolveGwCode: async (codeStr: string): Promise<{ retry: boolean, success: boolean }> => {
|
|
157
153
|
if (!codeStr) return { retry: false, success: true };
|
|
158
154
|
const code = parseInt(codeStr, 10);
|
|
@@ -431,7 +427,7 @@ const dealEncryptionSwitch = async (path: string, resHeader): Promise<void> => {
|
|
|
431
427
|
} else if (formatHeader['x-crypto-enable'] === '1') {
|
|
432
428
|
`${baseUtil.getSinanHost()}/user/login` === path && eccUtil._updateGlobalPublicKeyInfo(false, formatHeader);
|
|
433
429
|
await eccUtil.openCrypto();
|
|
434
|
-
} // 0是关闭,
|
|
430
|
+
} // 0是关闭,1是开启, 2是保持
|
|
435
431
|
dealEncryptionSwitching = false;
|
|
436
432
|
};
|
|
437
433
|
|
package/src/encrypt/index.ts
CHANGED
|
@@ -29,13 +29,6 @@ const util = {
|
|
|
29
29
|
reportFunc: (...args) => {
|
|
30
30
|
util.logInfo('reportFunc init fail:', ...args);
|
|
31
31
|
},
|
|
32
|
-
// 判断是否需要加密
|
|
33
|
-
needsEncryption: (path: string, reqData: Params): Boolean => {
|
|
34
|
-
// 小程序构建环境的加密开关关闭,不走加密
|
|
35
|
-
if (!wx.$_encryptEnvInfo.requestEncryptOpen) return false;
|
|
36
|
-
const isCryptoRuleMathRes = encryptUtil.isCryptoRuleMath(path, reqData);
|
|
37
|
-
return isCryptoRuleMathRes.res;
|
|
38
|
-
},
|
|
39
32
|
reqEncrypt: (obj: { url: string, method: string, data: any, header: any }): {
|
|
40
33
|
data: any, header: any, msg: string, cryptoKeyInfo?: any } => {
|
|
41
34
|
const { url, method, data, header = {} } = obj;
|
|
@@ -107,6 +100,7 @@ function proxyWxRequest(): void {
|
|
|
107
100
|
const completePromp = new Promise(resolve => { completeResolver = resolve; });
|
|
108
101
|
wx._request.call(this, Object.assign(options, {
|
|
109
102
|
data: formatData,
|
|
103
|
+
header: { ...formatHeader, Traceparent: traceparent },
|
|
110
104
|
dataType: '其他',
|
|
111
105
|
responseType: 'arraybuffer',
|
|
112
106
|
success: async (result) => {
|
|
@@ -127,7 +121,7 @@ function proxyWxRequest(): void {
|
|
|
127
121
|
encryptUtil.dealEncryptionSwitch(url, res.header);
|
|
128
122
|
success?.call(this, res);
|
|
129
123
|
},
|
|
130
|
-
header: { ...header, Traceparent:
|
|
124
|
+
header: { ...header, Traceparent: genTraceparent() },
|
|
131
125
|
}));
|
|
132
126
|
}
|
|
133
127
|
},
|
|
@@ -139,7 +133,6 @@ function proxyWxRequest(): void {
|
|
|
139
133
|
complete: (res) => {
|
|
140
134
|
completeResolver(res);
|
|
141
135
|
},
|
|
142
|
-
header: { ...formatHeader, Traceparent: traceparent },
|
|
143
136
|
}));
|
|
144
137
|
},
|
|
145
138
|
});
|
package/src/index.js
CHANGED
package/src/request.js
CHANGED
|
@@ -16,12 +16,6 @@ import reporter from './report/index';
|
|
|
16
16
|
|
|
17
17
|
const logger = wx.getLogManager({});
|
|
18
18
|
|
|
19
|
-
// 加密模块初始化
|
|
20
|
-
encryptObjInit({
|
|
21
|
-
composeParamsFunc: data => composeParam(data, true, {}),
|
|
22
|
-
report: (...args) => reporter.reportPerformance(...args),
|
|
23
|
-
});
|
|
24
|
-
|
|
25
19
|
/**
|
|
26
20
|
* 用于序列化需要签名的参数
|
|
27
21
|
* @private
|
|
@@ -165,6 +159,17 @@ export default class Request {
|
|
|
165
159
|
*/
|
|
166
160
|
static defaultSecretKey = '';
|
|
167
161
|
|
|
162
|
+
static encryptInit(secretKey) {
|
|
163
|
+
// 加密模块初始化
|
|
164
|
+
encryptObjInit({
|
|
165
|
+
composeParamsFunc: async (data) => {
|
|
166
|
+
const params = await composeParam(data, true, {});
|
|
167
|
+
return sign(params, secretKey);
|
|
168
|
+
},
|
|
169
|
+
report: (...args) => reporter.reportPerformance(...args),
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
168
173
|
static getInstance() {
|
|
169
174
|
if (reqInstance === null) {
|
|
170
175
|
reqInstance = new Request();
|