@cicctencent/midwayjs-base 1.0.37 → 1.0.39
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/README.md +582 -347
- package/dist/config/config.default.js +38 -3
- package/dist/config/env.js +46 -7
- package/dist/configuration.js +59 -23
- package/dist/constants/error-code.d.ts +27 -0
- package/dist/constants/error-code.js +53 -0
- package/dist/filter/default.filter.d.ts +4 -3
- package/dist/filter/default.filter.js +19 -6
- package/dist/filter/notfound.filter.js +7 -4
- package/dist/guard/api.js +29 -17
- package/dist/guard/auth.d.ts +7 -3
- package/dist/guard/auth.js +67 -71
- package/dist/index.d.ts +2 -0
- package/dist/index.js +61 -18
- package/dist/lib/decorator.d.ts +1 -1
- package/dist/lib/decorator.js +27 -17
- package/dist/lib/jwt.js +40 -3
- package/dist/lib/request.js +6 -2
- package/dist/lib/utils.js +28 -7
- package/dist/middleware/apiResultFormatter.js +16 -13
- package/dist/middleware/detect.middleware.js +7 -4
- package/dist/middleware/requestInit.js +49 -10
- package/dist/service/session.service.js +15 -12
- package/dist/service/tencent.service.js +50 -14
- package/dist/types/base.controller.js +8 -4
- package/dist/types/base.model.service.d.ts +1 -1
- package/dist/types/base.model.service.js +19 -9
- package/dist/types/base.service.js +18 -11
- package/dist/types/session.service.interface.js +11 -7
- package/package.json +30 -39
- package/typings/midway.d.ts +54 -54
|
@@ -1,6 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
const path = __importStar(require("path"));
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
exports.default = (appInfo) => {
|
|
4
39
|
appInfo.appId = Number(process.env.APP_ID) || 0;
|
|
5
40
|
const appRoot = appInfo.appDir || appInfo.root;
|
|
6
41
|
appInfo.dist = path.join(appRoot, 'dist');
|
package/dist/config/env.js
CHANGED
|
@@ -1,15 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.loadEnv = loadEnv;
|
|
37
|
+
const dotenv = __importStar(require("dotenv"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
function loadEnv(envPath) {
|
|
5
41
|
envPath = envPath || path.join(process.cwd(), '.env');
|
|
6
|
-
console.log('env path', envPath);
|
|
7
42
|
if (fs.existsSync(envPath)) {
|
|
8
|
-
const
|
|
43
|
+
const result = dotenv.config({
|
|
9
44
|
path: envPath,
|
|
10
45
|
encoding: 'utf-8',
|
|
11
46
|
});
|
|
12
|
-
|
|
47
|
+
if (result.error) {
|
|
48
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
49
|
+
console.warn('[midwayjs-base] Failed to load .env file:', result.error.message);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
13
52
|
}
|
|
14
53
|
return process.env;
|
|
15
54
|
}
|
package/dist/configuration.js
CHANGED
|
@@ -1,27 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
1
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
21
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
23
|
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
7
41
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
42
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
43
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.BaseConfiguration = void 0;
|
|
46
|
+
const core_1 = require("@midwayjs/core");
|
|
47
|
+
const koa = __importStar(require("@midwayjs/koa"));
|
|
48
|
+
const info = __importStar(require("@midwayjs/info"));
|
|
49
|
+
const axios = __importStar(require("@midwayjs/axios"));
|
|
50
|
+
const apiResultFormatter_1 = require("./middleware/apiResultFormatter");
|
|
51
|
+
const requestInit_1 = require("./middleware/requestInit");
|
|
52
|
+
const detect_middleware_1 = require("./middleware/detect.middleware");
|
|
53
|
+
const view = __importStar(require("@midwayjs/view-nunjucks"));
|
|
54
|
+
const staticFile = __importStar(require("@midwayjs/static-file"));
|
|
55
|
+
const cacheManager = __importStar(require("@midwayjs/cache-manager"));
|
|
56
|
+
const DefaultConfig = __importStar(require("./config/config.default"));
|
|
57
|
+
const api_1 = require("./guard/api");
|
|
58
|
+
const auth_1 = require("./guard/auth");
|
|
59
|
+
const env_1 = require("./config/env");
|
|
60
|
+
(0, env_1.loadEnv)();
|
|
25
61
|
let BaseConfiguration = class BaseConfiguration {
|
|
26
62
|
async onReady() {
|
|
27
63
|
if (process.env.FEFE_MIDWAYJS_BASE_READY === 'true') {
|
|
@@ -29,21 +65,22 @@ let BaseConfiguration = class BaseConfiguration {
|
|
|
29
65
|
}
|
|
30
66
|
process.env.SERVICE_NAME =
|
|
31
67
|
process.env.SERVICE_NAME || this.app.getProjectName();
|
|
32
|
-
this.app.useGuard([ApiGuard, AuthGuard]);
|
|
68
|
+
this.app.useGuard([api_1.ApiGuard, auth_1.AuthGuard]);
|
|
33
69
|
this.app.useMiddleware([
|
|
34
|
-
RequestInitMiddleware,
|
|
35
|
-
DetectMiddleware,
|
|
36
|
-
ApiResultFormatterMiddleware,
|
|
70
|
+
requestInit_1.RequestInitMiddleware,
|
|
71
|
+
detect_middleware_1.DetectMiddleware,
|
|
72
|
+
apiResultFormatter_1.ApiResultFormatterMiddleware,
|
|
37
73
|
]);
|
|
38
74
|
process.env.FEFE_MIDWAYJS_BASE_READY = 'true';
|
|
39
75
|
}
|
|
40
76
|
};
|
|
77
|
+
exports.BaseConfiguration = BaseConfiguration;
|
|
41
78
|
__decorate([
|
|
42
|
-
App(),
|
|
79
|
+
(0, core_1.App)(),
|
|
43
80
|
__metadata("design:type", Object)
|
|
44
81
|
], BaseConfiguration.prototype, "app", void 0);
|
|
45
|
-
BaseConfiguration = __decorate([
|
|
46
|
-
Configuration({
|
|
82
|
+
exports.BaseConfiguration = BaseConfiguration = __decorate([
|
|
83
|
+
(0, core_1.Configuration)({
|
|
47
84
|
namespace: 'MidwayjsBase',
|
|
48
85
|
imports: [
|
|
49
86
|
koa,
|
|
@@ -63,5 +100,4 @@ BaseConfiguration = __decorate([
|
|
|
63
100
|
],
|
|
64
101
|
})
|
|
65
102
|
], BaseConfiguration);
|
|
66
|
-
export { BaseConfiguration };
|
|
67
103
|
//# sourceMappingURL=configuration.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare enum ErrorCode {
|
|
2
|
+
SUCCESS = 0,
|
|
3
|
+
SYSTEM_ERROR = 1001,
|
|
4
|
+
PARAM_ERROR = 1002,
|
|
5
|
+
TIMEOUT = 1003,
|
|
6
|
+
TOKEN_INVALID = 50001,
|
|
7
|
+
TOKEN_EXPIRED = 50002,
|
|
8
|
+
AUTH_REQUIRED = 50003,
|
|
9
|
+
IP_NOT_ALLOWED = 50004,
|
|
10
|
+
TIMESTAMP_EXPIRED = 50005,
|
|
11
|
+
TIMESTAMP_INVALID = 50006,
|
|
12
|
+
TOKEN_EMPTY = 50007
|
|
13
|
+
}
|
|
14
|
+
export declare const ErrorMessages: Record<ErrorCode, string>;
|
|
15
|
+
export declare function createError(code: ErrorCode, msg?: string): {
|
|
16
|
+
ret: ErrorCode;
|
|
17
|
+
msg: string;
|
|
18
|
+
};
|
|
19
|
+
export declare class BizError extends Error {
|
|
20
|
+
ret: ErrorCode;
|
|
21
|
+
msg: string;
|
|
22
|
+
constructor(code: ErrorCode, msg?: string);
|
|
23
|
+
toJSON(): {
|
|
24
|
+
ret: ErrorCode;
|
|
25
|
+
msg: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BizError = exports.ErrorMessages = exports.ErrorCode = void 0;
|
|
4
|
+
exports.createError = createError;
|
|
5
|
+
var ErrorCode;
|
|
6
|
+
(function (ErrorCode) {
|
|
7
|
+
ErrorCode[ErrorCode["SUCCESS"] = 0] = "SUCCESS";
|
|
8
|
+
ErrorCode[ErrorCode["SYSTEM_ERROR"] = 1001] = "SYSTEM_ERROR";
|
|
9
|
+
ErrorCode[ErrorCode["PARAM_ERROR"] = 1002] = "PARAM_ERROR";
|
|
10
|
+
ErrorCode[ErrorCode["TIMEOUT"] = 1003] = "TIMEOUT";
|
|
11
|
+
ErrorCode[ErrorCode["TOKEN_INVALID"] = 50001] = "TOKEN_INVALID";
|
|
12
|
+
ErrorCode[ErrorCode["TOKEN_EXPIRED"] = 50002] = "TOKEN_EXPIRED";
|
|
13
|
+
ErrorCode[ErrorCode["AUTH_REQUIRED"] = 50003] = "AUTH_REQUIRED";
|
|
14
|
+
ErrorCode[ErrorCode["IP_NOT_ALLOWED"] = 50004] = "IP_NOT_ALLOWED";
|
|
15
|
+
ErrorCode[ErrorCode["TIMESTAMP_EXPIRED"] = 50005] = "TIMESTAMP_EXPIRED";
|
|
16
|
+
ErrorCode[ErrorCode["TIMESTAMP_INVALID"] = 50006] = "TIMESTAMP_INVALID";
|
|
17
|
+
ErrorCode[ErrorCode["TOKEN_EMPTY"] = 50007] = "TOKEN_EMPTY";
|
|
18
|
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
19
|
+
exports.ErrorMessages = {
|
|
20
|
+
[ErrorCode.SUCCESS]: 'success',
|
|
21
|
+
[ErrorCode.SYSTEM_ERROR]: '系统错误',
|
|
22
|
+
[ErrorCode.PARAM_ERROR]: '参数错误',
|
|
23
|
+
[ErrorCode.TIMEOUT]: '请求超时',
|
|
24
|
+
[ErrorCode.TOKEN_INVALID]: 'token输入错误',
|
|
25
|
+
[ErrorCode.TOKEN_EXPIRED]: 'token不存在或已过期',
|
|
26
|
+
[ErrorCode.AUTH_REQUIRED]: '需要登陆态',
|
|
27
|
+
[ErrorCode.IP_NOT_ALLOWED]: 'IP不在白名单内',
|
|
28
|
+
[ErrorCode.TIMESTAMP_EXPIRED]: 'timestamp已超过有效时间',
|
|
29
|
+
[ErrorCode.TIMESTAMP_INVALID]: 'timestamp时间异常',
|
|
30
|
+
[ErrorCode.TOKEN_EMPTY]: 'token为空,非法请求',
|
|
31
|
+
};
|
|
32
|
+
function createError(code, msg) {
|
|
33
|
+
return {
|
|
34
|
+
ret: code,
|
|
35
|
+
msg: msg || exports.ErrorMessages[code] || '未知错误',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
class BizError extends Error {
|
|
39
|
+
constructor(code, msg) {
|
|
40
|
+
super(msg || exports.ErrorMessages[code] || '未知错误');
|
|
41
|
+
this.ret = code;
|
|
42
|
+
this.msg = this.message;
|
|
43
|
+
this.name = 'BizError';
|
|
44
|
+
}
|
|
45
|
+
toJSON() {
|
|
46
|
+
return {
|
|
47
|
+
ret: this.ret,
|
|
48
|
+
msg: this.msg,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.BizError = BizError;
|
|
53
|
+
//# sourceMappingURL=error-code.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Context } from '@midwayjs/koa';
|
|
2
|
+
import { ErrorCode, BizError } from '../constants/error-code';
|
|
2
3
|
export declare class DefaultErrorFilter {
|
|
3
|
-
catch(err: Error, ctx: Context): Promise<{
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
catch(err: Error | BizError, ctx: Context): Promise<{
|
|
5
|
+
ret: ErrorCode;
|
|
6
|
+
msg: string;
|
|
6
7
|
}>;
|
|
7
8
|
}
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DefaultErrorFilter = void 0;
|
|
10
|
+
const core_1 = require("@midwayjs/core");
|
|
11
|
+
const error_code_1 = require("../constants/error-code");
|
|
8
12
|
let DefaultErrorFilter = class DefaultErrorFilter {
|
|
9
13
|
async catch(err, ctx) {
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
if (err instanceof error_code_1.BizError) {
|
|
15
|
+
ctx.logger?.error('Business error:', err.toJSON());
|
|
16
|
+
return err.toJSON();
|
|
17
|
+
}
|
|
18
|
+
ctx.logger?.error('Unhandled error:', {
|
|
19
|
+
name: err.name,
|
|
12
20
|
message: err.message,
|
|
21
|
+
stack: err.stack,
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
ret: error_code_1.ErrorCode.SYSTEM_ERROR,
|
|
25
|
+
msg: err.message || '系统错误',
|
|
13
26
|
};
|
|
14
27
|
}
|
|
15
28
|
};
|
|
16
|
-
DefaultErrorFilter =
|
|
17
|
-
|
|
29
|
+
exports.DefaultErrorFilter = DefaultErrorFilter;
|
|
30
|
+
exports.DefaultErrorFilter = DefaultErrorFilter = __decorate([
|
|
31
|
+
(0, core_1.Catch)()
|
|
18
32
|
], DefaultErrorFilter);
|
|
19
|
-
export { DefaultErrorFilter };
|
|
20
33
|
//# sourceMappingURL=default.filter.js.map
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
7
|
};
|
|
7
|
-
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.NotFoundFilter = void 0;
|
|
10
|
+
const core_1 = require("@midwayjs/core");
|
|
8
11
|
let NotFoundFilter = class NotFoundFilter {
|
|
9
12
|
async catch(err, ctx) {
|
|
10
13
|
ctx.redirect('/404.html');
|
|
11
14
|
}
|
|
12
15
|
};
|
|
13
|
-
NotFoundFilter =
|
|
14
|
-
|
|
16
|
+
exports.NotFoundFilter = NotFoundFilter;
|
|
17
|
+
exports.NotFoundFilter = NotFoundFilter = __decorate([
|
|
18
|
+
(0, core_1.Catch)(core_1.httpError.NotFoundError)
|
|
15
19
|
], NotFoundFilter);
|
|
16
|
-
export { NotFoundFilter };
|
|
17
20
|
//# sourceMappingURL=notfound.filter.js.map
|
package/dist/guard/api.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -7,16 +8,22 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
10
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ApiGuard = void 0;
|
|
16
|
+
const core_1 = require("@midwayjs/core");
|
|
17
|
+
const decorator_1 = require("../lib/decorator");
|
|
18
|
+
const api_1 = __importDefault(require("@fefeding/common/dist/utils/api"));
|
|
19
|
+
const error_code_1 = require("../constants/error-code");
|
|
13
20
|
let ApiGuard = class ApiGuard {
|
|
14
21
|
async canActivate(context, supplierClz, methodName) {
|
|
15
|
-
const needIP = getCheckIP(supplierClz, methodName);
|
|
22
|
+
const needIP = (0, decorator_1.getCheckIP)(supplierClz, methodName);
|
|
16
23
|
if (needIP) {
|
|
17
24
|
this.checkIPInWhiteList(context);
|
|
18
25
|
}
|
|
19
|
-
const needToken = getApiToken(supplierClz, methodName);
|
|
26
|
+
const needToken = (0, decorator_1.getApiToken)(supplierClz, methodName);
|
|
20
27
|
if (needToken) {
|
|
21
28
|
await this.checkApiToken(context);
|
|
22
29
|
}
|
|
@@ -34,16 +41,21 @@ let ApiGuard = class ApiGuard {
|
|
|
34
41
|
context.cookies.get('timestamp'));
|
|
35
42
|
if (!reqToken || !timestamp) {
|
|
36
43
|
context.logger.error(`token为空,非法请求, token: ${reqToken}, timestamp: ${timestamp}`);
|
|
37
|
-
throw
|
|
44
|
+
throw new error_code_1.BizError(error_code_1.ErrorCode.TOKEN_EMPTY);
|
|
45
|
+
}
|
|
46
|
+
const now = Date.now();
|
|
47
|
+
const validWindow = 5 * 60 * 1000;
|
|
48
|
+
if (timestamp < now - validWindow) {
|
|
49
|
+
throw new error_code_1.BizError(error_code_1.ErrorCode.TIMESTAMP_EXPIRED);
|
|
38
50
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
throw
|
|
51
|
+
if (timestamp > now + validWindow) {
|
|
52
|
+
context.logger.error(`timestamp时间异常,客户端时间超前: ${timestamp}, 当前时间: ${now}`);
|
|
53
|
+
throw new error_code_1.BizError(error_code_1.ErrorCode.TIMESTAMP_INVALID);
|
|
42
54
|
}
|
|
43
|
-
const thisToken =
|
|
55
|
+
const thisToken = api_1.default.createApiToken(this.apiOption.key, timestamp);
|
|
44
56
|
if (reqToken !== thisToken.sign) {
|
|
45
57
|
context.logger.error(`输入token:${reqToken} 本地: ${thisToken.sign} 不一致`);
|
|
46
|
-
throw
|
|
58
|
+
throw new error_code_1.BizError(error_code_1.ErrorCode.TOKEN_INVALID);
|
|
47
59
|
}
|
|
48
60
|
}
|
|
49
61
|
checkIPInWhiteList(context) {
|
|
@@ -51,21 +63,21 @@ let ApiGuard = class ApiGuard {
|
|
|
51
63
|
if (this.ipOption?.whiteList && !this.ipOption.whiteList.includes('*')) {
|
|
52
64
|
if (!this.ipOption.whiteList.includes(requestIp)) {
|
|
53
65
|
context.logger.error(`IP:${requestIp} 不在白名单内`);
|
|
54
|
-
throw
|
|
66
|
+
throw new error_code_1.BizError(error_code_1.ErrorCode.IP_NOT_ALLOWED, `IP:${requestIp} 不在白名单内`);
|
|
55
67
|
}
|
|
56
68
|
}
|
|
57
69
|
}
|
|
58
70
|
};
|
|
71
|
+
exports.ApiGuard = ApiGuard;
|
|
59
72
|
__decorate([
|
|
60
|
-
Config('apiOption'),
|
|
73
|
+
(0, core_1.Config)('apiOption'),
|
|
61
74
|
__metadata("design:type", Object)
|
|
62
75
|
], ApiGuard.prototype, "apiOption", void 0);
|
|
63
76
|
__decorate([
|
|
64
|
-
Config('ipOption'),
|
|
77
|
+
(0, core_1.Config)('ipOption'),
|
|
65
78
|
__metadata("design:type", Object)
|
|
66
79
|
], ApiGuard.prototype, "ipOption", void 0);
|
|
67
|
-
ApiGuard = __decorate([
|
|
68
|
-
Guard()
|
|
80
|
+
exports.ApiGuard = ApiGuard = __decorate([
|
|
81
|
+
(0, core_1.Guard)()
|
|
69
82
|
], ApiGuard);
|
|
70
|
-
export { ApiGuard };
|
|
71
83
|
//# sourceMappingURL=api.js.map
|
package/dist/guard/auth.d.ts
CHANGED
|
@@ -11,8 +11,12 @@ export declare class AuthGuard implements IGuard<Context> {
|
|
|
11
11
|
apiOption: any;
|
|
12
12
|
koa: any;
|
|
13
13
|
init(): Promise<void>;
|
|
14
|
-
|
|
14
|
+
private isPathIgnored;
|
|
15
|
+
checkNeedAuth(context: Context, supplierClz: any, methodName: string): boolean;
|
|
15
16
|
canActivate(context: Context, supplierClz: any, methodName: string): Promise<boolean>;
|
|
16
|
-
checkAuth(context: Context, token: string, needAuth?: boolean): Promise<
|
|
17
|
-
authError(context: Context, error
|
|
17
|
+
checkAuth(context: Context, token: string, needAuth?: boolean): Promise<void>;
|
|
18
|
+
authError(context: Context, error: {
|
|
19
|
+
ret: number;
|
|
20
|
+
msg: string;
|
|
21
|
+
}): void;
|
|
18
22
|
}
|