@tmsfe/tms-core 0.0.153 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmsfe/tms-core",
3
- "version": "0.0.153",
3
+ "version": "0.0.155",
4
4
  "description": "tms运行时框架",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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是关闭,2是开启, 1是保持
430
+ } // 0是关闭,1是开启, 2是保持
435
431
  dealEncryptionSwitching = false;
436
432
  };
437
433
 
@@ -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: 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
@@ -151,6 +151,7 @@ const init = (options = {}) => {
151
151
 
152
152
  Request.defaultHost = defaultHost;
153
153
  Request.defaultSecretKey = secretKey;
154
+ Request.encryptInit(secretKey);
154
155
  // 初始化云环境
155
156
  wx.cloud.init({ env: cloudEnvId });
156
157
  };
package/src/request.js CHANGED
@@ -11,17 +11,11 @@
11
11
  import md5 from './md5';
12
12
  import { getEnvInfo, getAuthInfo } from './env';
13
13
  import { safeJsonParse } from './objUtils';
14
- import { encryptObjInit } from './encrypt';
14
+ import { encryptObjInit } from './encrypt/index';
15
15
  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();