@nocobase/plugin-verification 0.9.1-alpha.2 → 0.9.2-alpha.1
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/lib/client/ProviderOptions.js +4 -27
- package/lib/client/Shortcut.js +1 -21
- package/lib/client/VerificationProviders.js +0 -14
- package/lib/client/index.js +3 -18
- package/lib/client/locale/index.js +2 -11
- package/lib/client/locale/pt-BR.d.ts +18 -0
- package/lib/client/locale/pt-BR.js +25 -0
- package/lib/client/providerTypes/index.js +0 -7
- package/lib/client/providerTypes/sms-aliyun.js +0 -2
- package/lib/client/providerTypes/sms-tencent.js +0 -2
- package/lib/client/schemas/providers.js +3 -13
- package/lib/index.js +0 -2
- package/lib/server/Plugin.js +23 -71
- package/lib/server/actions/index.js +3 -9
- package/lib/server/actions/verifications.js +2 -40
- package/lib/server/collections/verifications.js +1 -1
- package/lib/server/collections/verifications_providers.js +1 -1
- package/lib/server/index.js +0 -7
- package/lib/server/locale/index.js +0 -2
- package/lib/server/providers/index.js +6 -30
- package/lib/server/providers/sms-aliyun.js +6 -31
- package/lib/server/providers/sms-tencent.js +7 -26
- package/package.json +7 -7
- package/src/client/locale/pt-BR.ts +20 -0
- package/src/server/collections/verifications.ts +9 -9
- package/src/server/collections/verifications_providers.ts +7 -7
package/lib/server/Plugin.js
CHANGED
|
@@ -4,97 +4,68 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
function _path() {
|
|
9
8
|
const data = _interopRequireDefault(require("path"));
|
|
10
|
-
|
|
11
9
|
_path = function _path() {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
function _database() {
|
|
19
15
|
const data = require("@nocobase/database");
|
|
20
|
-
|
|
21
16
|
_database = function _database() {
|
|
22
17
|
return data;
|
|
23
18
|
};
|
|
24
|
-
|
|
25
19
|
return data;
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
function _server() {
|
|
29
22
|
const data = require("@nocobase/server");
|
|
30
|
-
|
|
31
23
|
_server = function _server() {
|
|
32
24
|
return data;
|
|
33
25
|
};
|
|
34
|
-
|
|
35
26
|
return data;
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
function _utils() {
|
|
39
29
|
const data = require("@nocobase/utils");
|
|
40
|
-
|
|
41
30
|
_utils = function _utils() {
|
|
42
31
|
return data;
|
|
43
32
|
};
|
|
44
|
-
|
|
45
33
|
return data;
|
|
46
34
|
}
|
|
47
|
-
|
|
48
35
|
var _ = require(".");
|
|
49
|
-
|
|
50
36
|
var _actions = _interopRequireDefault(require("./actions"));
|
|
51
|
-
|
|
52
37
|
var _constants = require("./constants");
|
|
53
|
-
|
|
54
38
|
var _locale = require("./locale");
|
|
55
|
-
|
|
56
39
|
var _providers = _interopRequireDefault(require("./providers"));
|
|
57
|
-
|
|
58
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
59
|
-
|
|
60
41
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
61
|
-
|
|
62
42
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
63
|
-
|
|
64
43
|
class VerificationPlugin extends _server().Plugin {
|
|
65
44
|
constructor(...args) {
|
|
66
45
|
var _this;
|
|
67
|
-
|
|
68
46
|
super(...args);
|
|
69
47
|
_this = this;
|
|
70
48
|
this.providers = new (_utils().Registry)();
|
|
71
49
|
this.interceptors = new (_utils().Registry)();
|
|
72
|
-
|
|
73
50
|
this.intercept = /*#__PURE__*/function () {
|
|
74
51
|
var _ref = _asyncToGenerator(function* (context, next) {
|
|
75
52
|
const _context$action$param = context.action.params,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
53
|
+
resourceName = _context$action$param.resourceName,
|
|
54
|
+
actionName = _context$action$param.actionName,
|
|
55
|
+
values = _context$action$param.values;
|
|
79
56
|
const key = `${resourceName}:${actionName}`;
|
|
80
|
-
|
|
81
57
|
const interceptor = _this.interceptors.get(key);
|
|
82
|
-
|
|
83
58
|
if (!interceptor) {
|
|
84
59
|
return context.throw(400);
|
|
85
60
|
}
|
|
86
|
-
|
|
87
61
|
const receiver = interceptor.getReceiver(context);
|
|
88
62
|
const content = interceptor.getCode ? interceptor.getCode(context) : values.code;
|
|
89
|
-
|
|
90
63
|
if (!receiver || !content) {
|
|
91
64
|
return context.throw(400);
|
|
92
|
-
}
|
|
65
|
+
}
|
|
66
|
+
// check if code match, then call next
|
|
93
67
|
// find the code based on action params
|
|
94
|
-
|
|
95
|
-
|
|
96
68
|
const VerificationRepo = _this.db.getRepository('verifications');
|
|
97
|
-
|
|
98
69
|
const item = yield VerificationRepo.findOne({
|
|
99
70
|
filter: {
|
|
100
71
|
receiver,
|
|
@@ -106,7 +77,6 @@ class VerificationPlugin extends _server().Plugin {
|
|
|
106
77
|
status: _constants.CODE_STATUS_UNUSED
|
|
107
78
|
}
|
|
108
79
|
});
|
|
109
|
-
|
|
110
80
|
if (!item) {
|
|
111
81
|
return context.throw(400, {
|
|
112
82
|
code: 'InvalidVerificationCode',
|
|
@@ -114,42 +84,36 @@ class VerificationPlugin extends _server().Plugin {
|
|
|
114
84
|
ns: _.namespace
|
|
115
85
|
})
|
|
116
86
|
});
|
|
117
|
-
}
|
|
87
|
+
}
|
|
88
|
+
// TODO: code should be removed if exists in values
|
|
118
89
|
// context.action.mergeParams({
|
|
119
90
|
// values: {
|
|
120
91
|
// }
|
|
121
92
|
// });
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
yield next(); // or delete
|
|
125
|
-
|
|
93
|
+
yield next();
|
|
94
|
+
// or delete
|
|
126
95
|
yield item.update({
|
|
127
96
|
status: _constants.CODE_STATUS_USED
|
|
128
97
|
});
|
|
129
98
|
});
|
|
130
|
-
|
|
131
99
|
return function (_x, _x2) {
|
|
132
100
|
return _ref.apply(this, arguments);
|
|
133
101
|
};
|
|
134
102
|
}();
|
|
135
103
|
}
|
|
136
|
-
|
|
137
104
|
install() {
|
|
138
105
|
var _this2 = this;
|
|
139
|
-
|
|
140
106
|
return _asyncToGenerator(function* () {
|
|
141
107
|
const _process$env = process.env,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
108
|
+
DEFAULT_SMS_VERIFY_CODE_PROVIDER = _process$env.DEFAULT_SMS_VERIFY_CODE_PROVIDER,
|
|
109
|
+
INIT_ALI_SMS_ACCESS_KEY = _process$env.INIT_ALI_SMS_ACCESS_KEY,
|
|
110
|
+
INIT_ALI_SMS_ACCESS_KEY_SECRET = _process$env.INIT_ALI_SMS_ACCESS_KEY_SECRET,
|
|
111
|
+
_process$env$INIT_ALI = _process$env.INIT_ALI_SMS_ENDPOINT,
|
|
112
|
+
INIT_ALI_SMS_ENDPOINT = _process$env$INIT_ALI === void 0 ? 'dysmsapi.aliyuncs.com' : _process$env$INIT_ALI,
|
|
113
|
+
INIT_ALI_SMS_VERIFY_CODE_TEMPLATE = _process$env.INIT_ALI_SMS_VERIFY_CODE_TEMPLATE,
|
|
114
|
+
INIT_ALI_SMS_VERIFY_CODE_SIGN = _process$env.INIT_ALI_SMS_VERIFY_CODE_SIGN;
|
|
150
115
|
if (DEFAULT_SMS_VERIFY_CODE_PROVIDER && INIT_ALI_SMS_ACCESS_KEY && INIT_ALI_SMS_ACCESS_KEY_SECRET && INIT_ALI_SMS_VERIFY_CODE_TEMPLATE && INIT_ALI_SMS_VERIFY_CODE_SIGN) {
|
|
151
116
|
const ProviderRepo = _this2.db.getRepository('verifications_providers');
|
|
152
|
-
|
|
153
117
|
yield ProviderRepo.create({
|
|
154
118
|
values: {
|
|
155
119
|
id: DEFAULT_SMS_VERIFY_CODE_PROVIDER,
|
|
@@ -168,55 +132,45 @@ class VerificationPlugin extends _server().Plugin {
|
|
|
168
132
|
}
|
|
169
133
|
})();
|
|
170
134
|
}
|
|
171
|
-
|
|
172
135
|
load() {
|
|
173
136
|
var _this3 = this;
|
|
174
|
-
|
|
175
137
|
return _asyncToGenerator(function* () {
|
|
176
138
|
const app = _this3.app,
|
|
177
|
-
|
|
178
|
-
|
|
139
|
+
db = _this3.db,
|
|
140
|
+
options = _this3.options;
|
|
179
141
|
app.i18n.addResources('zh-CN', _.namespace, _locale.zhCN);
|
|
180
142
|
yield _this3.importCollections(_path().default.resolve(__dirname, 'collections'));
|
|
181
143
|
(0, _providers.default)(_this3);
|
|
182
|
-
(0, _actions.default)(_this3);
|
|
183
|
-
|
|
144
|
+
(0, _actions.default)(_this3);
|
|
145
|
+
// add middleware to action
|
|
184
146
|
app.resourcer.use( /*#__PURE__*/function () {
|
|
185
147
|
var _ref2 = _asyncToGenerator(function* (context, next) {
|
|
186
148
|
const _context$action$param2 = context.action.params,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
149
|
+
resourceName = _context$action$param2.resourceName,
|
|
150
|
+
actionName = _context$action$param2.actionName,
|
|
151
|
+
values = _context$action$param2.values;
|
|
190
152
|
const key = `${resourceName}:${actionName}`;
|
|
191
|
-
|
|
192
153
|
const interceptor = _this3.interceptors.get(key);
|
|
193
|
-
|
|
194
154
|
if (!interceptor || interceptor.manual) {
|
|
195
155
|
return next();
|
|
196
156
|
}
|
|
197
|
-
|
|
198
157
|
return _this3.intercept(context, next);
|
|
199
158
|
});
|
|
200
|
-
|
|
201
159
|
return function (_x3, _x4) {
|
|
202
160
|
return _ref2.apply(this, arguments);
|
|
203
161
|
};
|
|
204
162
|
}());
|
|
205
163
|
app.acl.allow('verifications', 'create', 'public');
|
|
206
|
-
|
|
207
164
|
_this3.app.acl.registerSnippet({
|
|
208
165
|
name: `pm.${_this3.name}.providers`,
|
|
209
166
|
actions: ['verifications_providers:*']
|
|
210
167
|
});
|
|
211
168
|
})();
|
|
212
169
|
}
|
|
213
|
-
|
|
214
170
|
getDefault() {
|
|
215
171
|
var _this4 = this;
|
|
216
|
-
|
|
217
172
|
return _asyncToGenerator(function* () {
|
|
218
173
|
const providerRepo = _this4.db.getRepository('verifications_providers');
|
|
219
|
-
|
|
220
174
|
return providerRepo.findOne({
|
|
221
175
|
filter: {
|
|
222
176
|
default: true
|
|
@@ -224,7 +178,5 @@ class VerificationPlugin extends _server().Plugin {
|
|
|
224
178
|
});
|
|
225
179
|
})();
|
|
226
180
|
}
|
|
227
|
-
|
|
228
181
|
}
|
|
229
|
-
|
|
230
182
|
exports.default = VerificationPlugin;
|
|
@@ -4,25 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = _default;
|
|
7
|
-
|
|
8
7
|
var verifications = _interopRequireWildcard(require("./verifications"));
|
|
9
|
-
|
|
10
8
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
-
|
|
12
9
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
|
|
14
10
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
-
|
|
16
11
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
15
|
function make(name, mod) {
|
|
21
16
|
return Object.keys(mod).reduce((result, key) => _objectSpread(_objectSpread({}, result), {}, {
|
|
22
17
|
[`${name}:${key}`]: mod[key]
|
|
23
18
|
}), {});
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
function _default({
|
|
27
21
|
app
|
|
28
22
|
}) {
|
|
@@ -4,94 +4,65 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.create = create;
|
|
7
|
-
|
|
8
7
|
function _crypto() {
|
|
9
8
|
const data = require("crypto");
|
|
10
|
-
|
|
11
9
|
_crypto = function _crypto() {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
function _util() {
|
|
19
15
|
const data = require("util");
|
|
20
|
-
|
|
21
16
|
_util = function _util() {
|
|
22
17
|
return data;
|
|
23
18
|
};
|
|
24
|
-
|
|
25
19
|
return data;
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
function _actions() {
|
|
29
22
|
const data = _interopRequireDefault(require("@nocobase/actions"));
|
|
30
|
-
|
|
31
23
|
_actions = function _actions() {
|
|
32
24
|
return data;
|
|
33
25
|
};
|
|
34
|
-
|
|
35
26
|
return data;
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
function _database() {
|
|
39
29
|
const data = require("@nocobase/database");
|
|
40
|
-
|
|
41
30
|
_database = function _database() {
|
|
42
31
|
return data;
|
|
43
32
|
};
|
|
44
|
-
|
|
45
33
|
return data;
|
|
46
34
|
}
|
|
47
|
-
|
|
48
35
|
function _moment() {
|
|
49
36
|
const data = _interopRequireDefault(require("moment"));
|
|
50
|
-
|
|
51
37
|
_moment = function _moment() {
|
|
52
38
|
return data;
|
|
53
39
|
};
|
|
54
|
-
|
|
55
40
|
return data;
|
|
56
41
|
}
|
|
57
|
-
|
|
58
42
|
var _ = require("..");
|
|
59
|
-
|
|
60
43
|
var _constants = require("../constants");
|
|
61
|
-
|
|
62
44
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
63
|
-
|
|
64
45
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
65
|
-
|
|
66
46
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
67
|
-
|
|
68
47
|
const asyncRandomInt = (0, _util().promisify)(_crypto().randomInt);
|
|
69
|
-
|
|
70
48
|
function create(_x, _x2) {
|
|
71
49
|
return _create.apply(this, arguments);
|
|
72
50
|
}
|
|
73
|
-
|
|
74
51
|
function _create() {
|
|
75
52
|
_create = _asyncToGenerator(function* (context, next) {
|
|
76
53
|
var _interceptor$expiresI;
|
|
77
|
-
|
|
78
54
|
const plugin = context.app.getPlugin('verification');
|
|
79
55
|
const values = context.action.params.values;
|
|
80
56
|
const interceptor = plugin.interceptors.get(values === null || values === void 0 ? void 0 : values.type);
|
|
81
|
-
|
|
82
57
|
if (!interceptor) {
|
|
83
58
|
return context.throw(400, 'Invalid action type');
|
|
84
59
|
}
|
|
85
|
-
|
|
86
60
|
const providerItem = yield plugin.getDefault();
|
|
87
|
-
|
|
88
61
|
if (!providerItem) {
|
|
89
62
|
console.error(`[verification] no provider for action (${values.type}) provided`);
|
|
90
63
|
return context.throw(500);
|
|
91
64
|
}
|
|
92
|
-
|
|
93
65
|
const receiver = interceptor.getReceiver(context);
|
|
94
|
-
|
|
95
66
|
if (!receiver) {
|
|
96
67
|
return context.throw(400, {
|
|
97
68
|
code: 'InvalidReceiver',
|
|
@@ -100,7 +71,6 @@ function _create() {
|
|
|
100
71
|
})
|
|
101
72
|
});
|
|
102
73
|
}
|
|
103
|
-
|
|
104
74
|
const VerificationModel = context.db.getModel('verifications');
|
|
105
75
|
const record = yield VerificationModel.findOne({
|
|
106
76
|
where: {
|
|
@@ -112,10 +82,9 @@ function _create() {
|
|
|
112
82
|
}
|
|
113
83
|
}
|
|
114
84
|
});
|
|
115
|
-
|
|
116
85
|
if (record) {
|
|
117
|
-
const seconds = (0, _moment().default)(record.get('expiresAt')).diff((0, _moment().default)(), 'seconds');
|
|
118
|
-
|
|
86
|
+
const seconds = (0, _moment().default)(record.get('expiresAt')).diff((0, _moment().default)(), 'seconds');
|
|
87
|
+
// return context.throw(429, { code: 'RateLimit', message: context.t('Please don\'t retry in {{time}}', { time: moment().locale('zh').to(record.get('expiresAt')) }) });
|
|
119
88
|
return context.throw(429, {
|
|
120
89
|
code: 'RateLimit',
|
|
121
90
|
message: context.t('Please don\'t retry in {{time}} seconds', {
|
|
@@ -124,9 +93,7 @@ function _create() {
|
|
|
124
93
|
})
|
|
125
94
|
});
|
|
126
95
|
}
|
|
127
|
-
|
|
128
96
|
const code = (yield asyncRandomInt(999999)).toString(10).padStart(6, '0');
|
|
129
|
-
|
|
130
97
|
if (interceptor.validate) {
|
|
131
98
|
try {
|
|
132
99
|
yield interceptor.validate(context, receiver);
|
|
@@ -137,10 +104,8 @@ function _create() {
|
|
|
137
104
|
});
|
|
138
105
|
}
|
|
139
106
|
}
|
|
140
|
-
|
|
141
107
|
const ProviderType = plugin.providers.get(providerItem.get('type'));
|
|
142
108
|
const provider = new ProviderType(plugin, providerItem.get('options'));
|
|
143
|
-
|
|
144
109
|
try {
|
|
145
110
|
yield provider.send(receiver, {
|
|
146
111
|
code
|
|
@@ -156,12 +121,10 @@ function _create() {
|
|
|
156
121
|
ns: _.namespace
|
|
157
122
|
})
|
|
158
123
|
});
|
|
159
|
-
|
|
160
124
|
case 'RateLimit':
|
|
161
125
|
return context.throw(429, context.t('You are trying so frequently, please slow down', {
|
|
162
126
|
ns: _.namespace
|
|
163
127
|
}));
|
|
164
|
-
|
|
165
128
|
default:
|
|
166
129
|
console.error(error);
|
|
167
130
|
return context.throw(500, context.t('Verification send failed, please try later or contact to administrator', {
|
|
@@ -169,7 +132,6 @@ function _create() {
|
|
|
169
132
|
}));
|
|
170
133
|
}
|
|
171
134
|
}
|
|
172
|
-
|
|
173
135
|
const data = {
|
|
174
136
|
id: (0, _crypto().randomUUID)(),
|
|
175
137
|
type: values.type,
|
package/lib/server/index.js
CHANGED
|
@@ -20,9 +20,7 @@ Object.defineProperty(exports, "default", {
|
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
exports.namespace = void 0;
|
|
23
|
-
|
|
24
23
|
var _constants = require("./constants");
|
|
25
|
-
|
|
26
24
|
Object.keys(_constants).forEach(function (key) {
|
|
27
25
|
if (key === "default" || key === "__esModule") return;
|
|
28
26
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
@@ -34,13 +32,8 @@ Object.keys(_constants).forEach(function (key) {
|
|
|
34
32
|
}
|
|
35
33
|
});
|
|
36
34
|
});
|
|
37
|
-
|
|
38
35
|
var _providers = require("./providers");
|
|
39
|
-
|
|
40
36
|
var _Plugin = _interopRequireDefault(require("./Plugin"));
|
|
41
|
-
|
|
42
37
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
43
|
-
|
|
44
38
|
const namespace = require('../../package.json').name;
|
|
45
|
-
|
|
46
39
|
exports.namespace = namespace;
|
|
@@ -5,53 +5,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Provider = void 0;
|
|
7
7
|
exports.default = _default;
|
|
8
|
-
|
|
9
8
|
function _path() {
|
|
10
9
|
const data = _interopRequireDefault(require("path"));
|
|
11
|
-
|
|
12
10
|
_path = function _path() {
|
|
13
11
|
return data;
|
|
14
12
|
};
|
|
15
|
-
|
|
16
13
|
return data;
|
|
17
14
|
}
|
|
18
|
-
|
|
19
15
|
function _utils() {
|
|
20
16
|
const data = require("@nocobase/utils");
|
|
21
|
-
|
|
22
17
|
_utils = function _utils() {
|
|
23
18
|
return data;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
20
|
return data;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
var _constants = require("../constants");
|
|
30
|
-
|
|
31
23
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
32
|
-
|
|
33
24
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
34
|
-
|
|
35
25
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
36
|
-
|
|
37
26
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
38
|
-
|
|
39
27
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
40
|
-
|
|
41
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
42
|
-
|
|
28
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
43
29
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
44
|
-
|
|
45
30
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
46
|
-
|
|
47
31
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
48
|
-
|
|
49
|
-
function
|
|
50
|
-
|
|
32
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
33
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
34
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
51
35
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
52
|
-
|
|
53
36
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
54
|
-
|
|
55
37
|
class Provider {
|
|
56
38
|
constructor(plugin, options) {
|
|
57
39
|
this.plugin = void 0;
|
|
@@ -59,26 +41,20 @@ class Provider {
|
|
|
59
41
|
this.plugin = plugin;
|
|
60
42
|
this.options = options;
|
|
61
43
|
}
|
|
62
|
-
|
|
63
44
|
send(receiver, data) {
|
|
64
45
|
return _asyncToGenerator(function* () {})();
|
|
65
46
|
}
|
|
66
|
-
|
|
67
47
|
}
|
|
68
|
-
|
|
69
48
|
exports.Provider = Provider;
|
|
70
|
-
|
|
71
49
|
function _default(plugin, more = {}) {
|
|
72
50
|
const providers = plugin.providers;
|
|
73
51
|
const natives = [_constants.PROVIDER_TYPE_SMS_ALIYUN, _constants.PROVIDER_TYPE_SMS_TENCENT].reduce((result, key) => Object.assign(result, {
|
|
74
52
|
[key]: (0, _utils().requireModule)(_path().default.isAbsolute(key) ? key : _path().default.join(__dirname, key))
|
|
75
53
|
}), {});
|
|
76
|
-
|
|
77
54
|
for (var _i = 0, _Object$entries = Object.entries(_objectSpread(_objectSpread({}, more), natives)); _i < _Object$entries.length; _i++) {
|
|
78
55
|
const _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
56
|
+
name = _Object$entries$_i[0],
|
|
57
|
+
provider = _Object$entries$_i[1];
|
|
82
58
|
providers.register(name, provider);
|
|
83
59
|
}
|
|
84
60
|
}
|
|
@@ -4,69 +4,52 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
function _dysmsapi() {
|
|
9
8
|
const data = _interopRequireWildcard(require("@alicloud/dysmsapi20170525"));
|
|
10
|
-
|
|
11
9
|
_dysmsapi = function _dysmsapi() {
|
|
12
10
|
return data;
|
|
13
11
|
};
|
|
14
|
-
|
|
15
12
|
return data;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
function OpenApi() {
|
|
19
15
|
const data = _interopRequireWildcard(require("@alicloud/openapi-client"));
|
|
20
|
-
|
|
21
16
|
OpenApi = function OpenApi() {
|
|
22
17
|
return data;
|
|
23
18
|
};
|
|
24
|
-
|
|
25
19
|
return data;
|
|
26
20
|
}
|
|
27
|
-
|
|
28
21
|
function _teaUtil() {
|
|
29
22
|
const data = require("@alicloud/tea-util");
|
|
30
|
-
|
|
31
23
|
_teaUtil = function _teaUtil() {
|
|
32
24
|
return data;
|
|
33
25
|
};
|
|
34
|
-
|
|
35
26
|
return data;
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
var _ = require(".");
|
|
39
|
-
|
|
40
29
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
|
-
|
|
42
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
|
-
|
|
44
31
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
45
|
-
|
|
46
32
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
47
|
-
|
|
48
33
|
class _default extends _.Provider {
|
|
49
34
|
constructor(plugin, options) {
|
|
50
35
|
super(plugin, options);
|
|
51
36
|
this.client = void 0;
|
|
52
37
|
const _this$options = this.options,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
38
|
+
accessKeyId = _this$options.accessKeyId,
|
|
39
|
+
accessKeySecret = _this$options.accessKeySecret,
|
|
40
|
+
endpoint = _this$options.endpoint;
|
|
56
41
|
let config = new (OpenApi().Config)({
|
|
57
42
|
// 您的 AccessKey ID
|
|
58
43
|
accessKeyId: accessKeyId,
|
|
59
44
|
// 您的 AccessKey Secret
|
|
60
45
|
accessKeySecret: accessKeySecret
|
|
61
|
-
});
|
|
62
|
-
|
|
46
|
+
});
|
|
47
|
+
// 访问的域名
|
|
63
48
|
config.endpoint = endpoint;
|
|
64
49
|
this.client = new (_dysmsapi().default)(config);
|
|
65
50
|
}
|
|
66
|
-
|
|
67
51
|
send(phoneNumbers, data = {}) {
|
|
68
52
|
var _this = this;
|
|
69
|
-
|
|
70
53
|
return _asyncToGenerator(function* () {
|
|
71
54
|
const request = new (_dysmsapi().SendSmsRequest)({
|
|
72
55
|
phoneNumbers,
|
|
@@ -74,27 +57,21 @@ class _default extends _.Provider {
|
|
|
74
57
|
templateCode: _this.options.template,
|
|
75
58
|
templateParam: JSON.stringify(data)
|
|
76
59
|
});
|
|
77
|
-
|
|
78
60
|
try {
|
|
79
61
|
const _yield$_this$client$s = yield _this.client.sendSmsWithOptions(request, new (_teaUtil().RuntimeOptions)({})),
|
|
80
|
-
|
|
81
|
-
|
|
62
|
+
body = _yield$_this$client$s.body;
|
|
82
63
|
let err = new Error(body.message);
|
|
83
|
-
|
|
84
64
|
switch (body.code) {
|
|
85
65
|
case 'OK':
|
|
86
66
|
break;
|
|
87
|
-
|
|
88
67
|
case 'isv.MOBILE_NUMBER_ILLEGAL':
|
|
89
68
|
err.name = 'InvalidReceiver';
|
|
90
69
|
return Promise.reject(err);
|
|
91
|
-
|
|
92
70
|
case 'isv.BUSINESS_LIMIT_CONTROL':
|
|
93
71
|
err.name = 'RateLimit';
|
|
94
72
|
console.error(body);
|
|
95
73
|
return Promise.reject(err);
|
|
96
74
|
// case 'isp.RAM_PERMISSION_DENY':
|
|
97
|
-
|
|
98
75
|
default:
|
|
99
76
|
// should not let user to know
|
|
100
77
|
console.error(body);
|
|
@@ -106,7 +83,5 @@ class _default extends _.Provider {
|
|
|
106
83
|
}
|
|
107
84
|
})();
|
|
108
85
|
}
|
|
109
|
-
|
|
110
86
|
}
|
|
111
|
-
|
|
112
87
|
exports.default = _default;
|