@azteam/express 1.2.459 → 1.2.464
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/Server.js
CHANGED
|
@@ -49,14 +49,19 @@ var Server = /*#__PURE__*/function () {
|
|
|
49
49
|
function Server(serviceDirs) {
|
|
50
50
|
var _this = this;
|
|
51
51
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
52
|
-
var errorCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] :
|
|
52
|
+
var errorCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
|
|
53
53
|
_classCallCheck(this, Server);
|
|
54
54
|
this.options = _objectSpread(_objectSpread({
|
|
55
55
|
redis: null,
|
|
56
56
|
whiteList: null,
|
|
57
57
|
excludeList: [],
|
|
58
58
|
debug: process.env.NODE_ENV === 'development',
|
|
59
|
-
systemUser: 'toda'
|
|
59
|
+
systemUser: 'toda',
|
|
60
|
+
timeout: 300 * 1000,
|
|
61
|
+
// 5 minutes
|
|
62
|
+
keepAliveTimeout: 300 * 1000,
|
|
63
|
+
// 300 seconds
|
|
64
|
+
headersTimeout: 305 * 1000
|
|
60
65
|
}, options), {}, {
|
|
61
66
|
cookieOption: _objectSpread({
|
|
62
67
|
domain: null,
|
|
@@ -349,9 +354,9 @@ var Server = /*#__PURE__*/function () {
|
|
|
349
354
|
});
|
|
350
355
|
});
|
|
351
356
|
var server = _http["default"].Server(app);
|
|
352
|
-
server.setTimeout(
|
|
353
|
-
server.keepAliveTimeout =
|
|
354
|
-
server.headersTimeout =
|
|
357
|
+
server.setTimeout(this.options.timeout);
|
|
358
|
+
server.keepAliveTimeout = this.options.keepAliveTimeout;
|
|
359
|
+
server.headersTimeout = this.options.keepAliveTimeout;
|
|
355
360
|
server.on('listening', function () {
|
|
356
361
|
_this4._alert('listening', "Server start at http://localhost:".concat(server.address().port));
|
|
357
362
|
});
|
|
@@ -12,24 +12,25 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
12
12
|
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); }); }; }
|
|
13
13
|
function _default(secret) {
|
|
14
14
|
var mTimeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
|
|
15
|
+
var isThrowError = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
15
16
|
return /*#__PURE__*/function () {
|
|
16
17
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(req, res, next) {
|
|
17
18
|
var url;
|
|
18
19
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
19
20
|
while (1) switch (_context.prev = _context.next) {
|
|
20
21
|
case 0:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
req.validSign = false;
|
|
23
|
+
if (req.query.sign) {
|
|
24
|
+
url = "".concat(req.protocol, "://").concat(req.hostname).concat(req.originalUrl);
|
|
25
|
+
req.validSign = (0, _crypto.isValidSign)(url, secret, mTimeout);
|
|
24
26
|
}
|
|
25
|
-
|
|
26
|
-
if (!(0, _crypto.isValidSign)(url, secret, mTimeout)) {
|
|
27
|
+
if (!(isThrowError && !req.validSign)) {
|
|
27
28
|
_context.next = 4;
|
|
28
29
|
break;
|
|
29
30
|
}
|
|
30
|
-
return _context.abrupt("return", next());
|
|
31
|
-
case 4:
|
|
32
31
|
throw new _error.ErrorException(_error.SIGNATURE_FAILED);
|
|
32
|
+
case 4:
|
|
33
|
+
return _context.abrupt("return", next());
|
|
33
34
|
case 5:
|
|
34
35
|
case "end":
|
|
35
36
|
return _context.stop();
|
package/package.json
CHANGED
package/src/Server.js
CHANGED
|
@@ -24,13 +24,16 @@ const RES_TYPE = {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
class Server {
|
|
27
|
-
constructor(serviceDirs, options = {}, errorCallback =
|
|
27
|
+
constructor(serviceDirs, options = {}, errorCallback = () => {}) {
|
|
28
28
|
this.options = {
|
|
29
29
|
redis: null,
|
|
30
30
|
whiteList: null,
|
|
31
31
|
excludeList: [],
|
|
32
32
|
debug: process.env.NODE_ENV === 'development',
|
|
33
33
|
systemUser: 'toda',
|
|
34
|
+
timeout: 300 * 1000, // 5 minutes
|
|
35
|
+
keepAliveTimeout: 300 * 1000, // 300 seconds
|
|
36
|
+
headersTimeout: 305 * 1000, // 305 seconds
|
|
34
37
|
...options,
|
|
35
38
|
cookieOption: {
|
|
36
39
|
domain: null,
|
|
@@ -325,9 +328,9 @@ class Server {
|
|
|
325
328
|
});
|
|
326
329
|
|
|
327
330
|
const server = http.Server(app);
|
|
328
|
-
server.setTimeout(
|
|
329
|
-
server.keepAliveTimeout =
|
|
330
|
-
server.headersTimeout =
|
|
331
|
+
server.setTimeout(this.options.timeout);
|
|
332
|
+
server.keepAliveTimeout = this.options.keepAliveTimeout;
|
|
333
|
+
server.headersTimeout = this.options.keepAliveTimeout;
|
|
331
334
|
|
|
332
335
|
server.on('listening', () => {
|
|
333
336
|
this._alert('listening', `Server start at http://localhost:${server.address().port}`);
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import {isValidSign} from '@azteam/crypto';
|
|
2
2
|
import {ErrorException, SIGNATURE_FAILED} from '@azteam/error';
|
|
3
3
|
|
|
4
|
-
export default function (secret, mTimeout = 5) {
|
|
4
|
+
export default function (secret, mTimeout = 5, isThrowError = true) {
|
|
5
5
|
return async function (req, res, next) {
|
|
6
|
+
req.validSign = false;
|
|
6
7
|
if (req.query.sign) {
|
|
7
8
|
const url = `${req.protocol}://${req.hostname}${req.originalUrl}`;
|
|
8
|
-
|
|
9
|
-
return next();
|
|
10
|
-
}
|
|
9
|
+
req.validSign = isValidSign(url, secret, mTimeout);
|
|
11
10
|
}
|
|
12
|
-
|
|
11
|
+
if (isThrowError && !req.validSign) {
|
|
12
|
+
throw new ErrorException(SIGNATURE_FAILED);
|
|
13
|
+
}
|
|
14
|
+
return next();
|
|
13
15
|
};
|
|
14
16
|
}
|