xctc-utils 1.6.19 → 1.6.20

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.
@@ -20,4 +20,5 @@ interface GetOptions {
20
20
  iv?: string;
21
21
  }
22
22
  export declare const get: (options: GetOptions) => any;
23
+ export declare const urlStateParams: (cacheKey?: string, key?: string, iv?: string) => void;
23
24
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.get = exports.set = void 0;
3
+ exports.urlStateParams = exports.get = exports.set = void 0;
4
4
  var crypto_1 = require("../crypto");
5
5
  var storage_1 = require("../storage");
6
6
  var defaultKey = "5uMz4R8rop26DkC8";
@@ -34,7 +34,10 @@ var get = function (options) {
34
34
  search = search.substring(1);
35
35
  }
36
36
  var urlArr = search.split("&");
37
- var paramsData = {};
37
+ var paramsData = (0, storage_1.getSessionStorage)(cacheKey) || {};
38
+ if (!((keys === null || keys === void 0 ? void 0 : keys.length) && (urlArr === null || urlArr === void 0 ? void 0 : urlArr.length))) {
39
+ return;
40
+ }
38
41
  for (var k = 0; k < keys.length; k++) {
39
42
  var keyItem = keys[k];
40
43
  if (keyItem.includes("=")) {
@@ -50,9 +53,11 @@ var get = function (options) {
50
53
  urlItem = urlArr[i];
51
54
  if (urlItem === null || urlItem === void 0 ? void 0 : urlItem.includes(keyItem)) {
52
55
  var dataStr = urlItem.substring(urlItem.indexOf(keyItem) + keyItem.length + 1);
56
+ var decryptData = (0, crypto_1.decrypt)(dataStr, key, iv);
53
57
  var decryptStr = (0, crypto_1.decrypt)(dataStr, key, iv);
54
58
  paramsData[keyItem] = {
55
- data: getParamsObj(decryptStr),
59
+ // data:getParamsObj(decryptStr),
60
+ data: decryptData,
56
61
  str: dataStr
57
62
  };
58
63
  }
@@ -81,3 +86,30 @@ var getParamsObj = function (objStr) {
81
86
  }
82
87
  return objData;
83
88
  };
89
+ var urlStateParams = function (cacheKey, key, iv) {
90
+ if (!cacheKey)
91
+ cacheKey = "urlParamsData";
92
+ if (!key)
93
+ key = defaultKey;
94
+ if (!iv)
95
+ iv = defaultIv;
96
+ var win = window;
97
+ var loc = win.location;
98
+ var search = loc.search;
99
+ if (search.startsWith("?")) {
100
+ search = search.substring(1);
101
+ }
102
+ var urlArr = search.split("&");
103
+ for (var k = 0; k < urlArr.length; k++) {
104
+ var item = urlArr[k];
105
+ if (item.includes("state=")) {
106
+ var indexVal = item.indexOf("=");
107
+ var keys = item.substring(0, indexVal);
108
+ keys = keys[0].toUpperCase() + keys.substring(1);
109
+ var val = item.substring(indexVal + 1);
110
+ var data = (0, crypto_1.decrypt)(val, key, iv);
111
+ (0, storage_1.useSessionStorage)(cacheKey, { state: { str: val, data: data } });
112
+ }
113
+ }
114
+ };
115
+ exports.urlStateParams = urlStateParams;
@@ -70,7 +70,7 @@ function getUrlCode(config) {
70
70
  var localCode = (0, index_1.getSessionStorage)("urlParamsData") || "";
71
71
  // 本地未存储微信授权 code 值, 并且地址栏携带有 code 值 ,则先存储该值
72
72
  if (!localCode && codeIndex != -1 && isAuth) {
73
- params.get({ keys: ['code', 'state'], cache: "session", key: cryptokey, iv: cryptoiv });
73
+ params.get({ keys: ['code'], cache: "session", key: cryptokey, iv: cryptoiv });
74
74
  }
75
75
  // 如果本地已经存储 微信授权返回的 code 值,证明用户在执行刷新操作,不再执行微信授权逻辑
76
76
  if (localCode && stateIndex == -1 && codeIndex == -1 && !isAuth) {
@@ -102,6 +102,7 @@ function getUrlCode(config) {
102
102
  if (debuggerStatus) {
103
103
  alert("用户通过分享链接进入系统,无code参数 ,跳转到code授权页面");
104
104
  }
105
+ params.urlStateParams();
105
106
  return getCode(); // 微信授权页面获取CODE
106
107
  }
107
108
  // && stateIndex == -1 && codeIndex == -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xctc-utils",
3
- "version": "1.6.19",
3
+ "version": "1.6.20",
4
4
  "description": "localStorage存储\r ```\r sessionStorage存储\r ```\r crypto-js加密、解密\r ```\r 微信授权登录、微信分享\r ```\r 设备环境获取\r ```\r 是否是微信浏览器\r ```\r 时间戳转时间,字符串转时间戳",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",