@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
package/dist/guard/auth.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,78 +8,73 @@ 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
|
-
|
|
13
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AuthGuard = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const decorator_1 = require("../lib/decorator");
|
|
15
|
+
const utils_1 = require("../lib/utils");
|
|
16
|
+
const session_service_interface_1 = require("../types/session.service.interface");
|
|
17
|
+
const error_code_1 = require("../constants/error-code");
|
|
14
18
|
let AuthGuard = class AuthGuard {
|
|
15
19
|
async init() {
|
|
16
20
|
const appContext = this.app.getApplicationContext();
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (sessionServiceObj) {
|
|
24
|
-
console.log('use custom session service for auth guard', this.sessionService.sessionOption.serviceKey);
|
|
25
|
-
this.sessionService = sessionServiceObj;
|
|
21
|
+
this.sessionService = await appContext.getAsync(session_service_interface_1.DEFAULT_SESSION_SERVICE_KEY);
|
|
22
|
+
const customKey = this.sessionService?.sessionOption?.serviceKey;
|
|
23
|
+
if (customKey && customKey !== session_service_interface_1.DEFAULT_SESSION_SERVICE_KEY) {
|
|
24
|
+
const customService = await appContext.getAsync(customKey);
|
|
25
|
+
if (customService) {
|
|
26
|
+
this.sessionService = customService;
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
}
|
|
30
|
+
isPathIgnored(path) {
|
|
31
|
+
const ignores = this.authOption?.ignores;
|
|
32
|
+
if (!ignores)
|
|
33
|
+
return false;
|
|
34
|
+
if (ignores === '*')
|
|
35
|
+
return true;
|
|
36
|
+
if (typeof ignores === 'string') {
|
|
37
|
+
return ignores === path;
|
|
38
|
+
}
|
|
39
|
+
if (Array.isArray(ignores)) {
|
|
40
|
+
return ignores.some(rule => rule === '*' ||
|
|
41
|
+
(rule instanceof RegExp ? rule.test(path) : rule === path));
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
29
45
|
checkNeedAuth(context, supplierClz, methodName) {
|
|
30
|
-
if (this.
|
|
31
|
-
|
|
32
|
-
this.authOption.ignores === context.path) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
if (Array.isArray(this.authOption.ignores)) {
|
|
36
|
-
if (this.authOption.ignores.includes('*'))
|
|
37
|
-
return false;
|
|
38
|
-
for (const t of this.authOption.ignores) {
|
|
39
|
-
if (t instanceof RegExp) {
|
|
40
|
-
if (t.test(context.path))
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
else if (typeof t === 'string') {
|
|
44
|
-
if (t === context.path)
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
46
|
+
if (this.isPathIgnored(context.path)) {
|
|
47
|
+
return false;
|
|
49
48
|
}
|
|
50
|
-
|
|
51
|
-
return needAuth;
|
|
49
|
+
return (0, decorator_1.getCheckLogin)(supplierClz, methodName) === true;
|
|
52
50
|
}
|
|
53
51
|
async canActivate(context, supplierClz, methodName) {
|
|
54
52
|
const needAuth = this.checkNeedAuth(context, supplierClz, methodName);
|
|
55
|
-
const token = getAuthToken(context);
|
|
53
|
+
const token = (0, utils_1.getAuthToken)(context);
|
|
56
54
|
if (token)
|
|
57
55
|
context.auth_token = token;
|
|
58
|
-
|
|
59
|
-
return
|
|
56
|
+
await this.checkAuth(context, token, needAuth);
|
|
57
|
+
return true;
|
|
60
58
|
}
|
|
61
59
|
async checkAuth(context, token, needAuth) {
|
|
62
60
|
this.sessionService.ctx = context;
|
|
63
|
-
const authRet = 50001;
|
|
64
61
|
let errRes = null;
|
|
62
|
+
let session = null;
|
|
65
63
|
try {
|
|
66
|
-
let session = null;
|
|
67
64
|
const authCode = context.URL.searchParams.get('auth_code');
|
|
68
65
|
if (authCode) {
|
|
69
66
|
session = await this.sessionService.loginByCode(authCode);
|
|
70
67
|
if (session) {
|
|
71
|
-
setAuthToken(context, session.id);
|
|
68
|
+
(0, utils_1.setAuthToken)(context, session.id);
|
|
72
69
|
}
|
|
73
70
|
context.URL.searchParams.delete('auth_code');
|
|
74
71
|
context.URL.hostname = context.detect?.HOSTNAME || context.hostname;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return true;
|
|
72
|
+
context.redirect(context.URL.toString());
|
|
73
|
+
return;
|
|
78
74
|
}
|
|
79
|
-
if (token
|
|
75
|
+
if (token) {
|
|
80
76
|
if (token.startsWith('Bearer ')) {
|
|
81
|
-
const jwtData = decodeJWT(token.replace('Bearer ', ''), this.sessionService?.sessionOption?.secretKey || 'fefeding');
|
|
77
|
+
const jwtData = (0, utils_1.decodeJWT)(token.replace('Bearer ', ''), this.sessionService?.sessionOption?.secretKey || 'fefeding');
|
|
82
78
|
if (jwtData) {
|
|
83
79
|
session = jwtData;
|
|
84
80
|
}
|
|
@@ -86,58 +82,58 @@ let AuthGuard = class AuthGuard {
|
|
|
86
82
|
else {
|
|
87
83
|
session = await this.sessionService.getLoginSession(token);
|
|
88
84
|
}
|
|
89
|
-
if (!session
|
|
90
|
-
setAuthToken(context, '');
|
|
85
|
+
if (!session?.id) {
|
|
86
|
+
(0, utils_1.setAuthToken)(context, '');
|
|
91
87
|
errRes = {
|
|
92
|
-
ret:
|
|
88
|
+
ret: error_code_1.ErrorCode.TOKEN_EXPIRED,
|
|
93
89
|
msg: 'token不存在或已过期',
|
|
94
90
|
};
|
|
95
91
|
}
|
|
96
92
|
}
|
|
97
93
|
if (!session) {
|
|
98
94
|
errRes = {
|
|
99
|
-
ret:
|
|
95
|
+
ret: error_code_1.ErrorCode.AUTH_REQUIRED,
|
|
100
96
|
msg: '需要登陆态',
|
|
101
97
|
};
|
|
102
98
|
}
|
|
103
99
|
context.currentSession = session;
|
|
104
|
-
if (session && context.logger
|
|
105
|
-
context.logger.setOptions
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
100
|
+
if (session && context.logger) {
|
|
101
|
+
if (typeof context.logger.setOptions === 'function') {
|
|
102
|
+
context.logger.setOptions({
|
|
103
|
+
loginId: session.loginId || '',
|
|
104
|
+
userId: (session.userId || '').toString(),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
109
|
catch (e) {
|
|
112
110
|
errRes = {
|
|
113
|
-
ret: e?.ret ||
|
|
111
|
+
ret: e?.ret || error_code_1.ErrorCode.SYSTEM_ERROR,
|
|
114
112
|
msg: e?.msg || e?.message || 'auth error',
|
|
115
113
|
};
|
|
116
|
-
|
|
114
|
+
context.logger?.error('Auth check error:', e);
|
|
117
115
|
}
|
|
118
116
|
if (errRes && needAuth) {
|
|
119
117
|
this.authError(context, errRes);
|
|
120
118
|
}
|
|
121
|
-
return true;
|
|
122
119
|
}
|
|
123
120
|
authError(context, error) {
|
|
124
121
|
const isApi = this.apiOption?.reg?.test(context.path);
|
|
125
122
|
if (isApi) {
|
|
126
123
|
context.status = 200;
|
|
127
|
-
|
|
128
|
-
throw error;
|
|
124
|
+
throw new error_code_1.BizError(error.ret, error.msg);
|
|
129
125
|
}
|
|
130
126
|
else {
|
|
131
127
|
const loginUrl = `${this.ssoOption?.baseUrl || this.koa?.globalPrefix || ''}/login`;
|
|
132
128
|
if (!/\/login\/?(\?|$|#)/.test(context.URL.pathname)) {
|
|
133
129
|
const URL = context.URL;
|
|
134
|
-
if (context.detect?.HOSTNAME &&
|
|
135
|
-
URL.hostname !== context.detect?.HOSTNAME)
|
|
130
|
+
if (context.detect?.HOSTNAME && URL.hostname !== context.detect.HOSTNAME) {
|
|
136
131
|
URL.hostname = context.detect.HOSTNAME;
|
|
132
|
+
}
|
|
137
133
|
URL.searchParams.delete('jv_auth_code');
|
|
138
134
|
URL.searchParams.delete('token');
|
|
139
135
|
URL.searchParams.delete('auth_code');
|
|
140
|
-
const redirectUrl =
|
|
136
|
+
const redirectUrl = URL.toString();
|
|
141
137
|
context.redirect(`${loginUrl}?url=${encodeURIComponent(redirectUrl)}&appid=${this.ssoOption?.appId || 0}`);
|
|
142
138
|
}
|
|
143
139
|
else {
|
|
@@ -146,34 +142,34 @@ let AuthGuard = class AuthGuard {
|
|
|
146
142
|
}
|
|
147
143
|
}
|
|
148
144
|
};
|
|
145
|
+
exports.AuthGuard = AuthGuard;
|
|
149
146
|
__decorate([
|
|
150
|
-
App(),
|
|
147
|
+
(0, core_1.App)(),
|
|
151
148
|
__metadata("design:type", Object)
|
|
152
149
|
], AuthGuard.prototype, "app", void 0);
|
|
153
150
|
__decorate([
|
|
154
|
-
Config('sso'),
|
|
151
|
+
(0, core_1.Config)('sso'),
|
|
155
152
|
__metadata("design:type", Object)
|
|
156
153
|
], AuthGuard.prototype, "ssoOption", void 0);
|
|
157
154
|
__decorate([
|
|
158
|
-
Config('auth'),
|
|
155
|
+
(0, core_1.Config)('auth'),
|
|
159
156
|
__metadata("design:type", Object)
|
|
160
157
|
], AuthGuard.prototype, "authOption", void 0);
|
|
161
158
|
__decorate([
|
|
162
|
-
Config('apiOption'),
|
|
159
|
+
(0, core_1.Config)('apiOption'),
|
|
163
160
|
__metadata("design:type", Object)
|
|
164
161
|
], AuthGuard.prototype, "apiOption", void 0);
|
|
165
162
|
__decorate([
|
|
166
|
-
Config('koa'),
|
|
163
|
+
(0, core_1.Config)('koa'),
|
|
167
164
|
__metadata("design:type", Object)
|
|
168
165
|
], AuthGuard.prototype, "koa", void 0);
|
|
169
166
|
__decorate([
|
|
170
|
-
Init(),
|
|
167
|
+
(0, core_1.Init)(),
|
|
171
168
|
__metadata("design:type", Function),
|
|
172
169
|
__metadata("design:paramtypes", []),
|
|
173
170
|
__metadata("design:returntype", Promise)
|
|
174
171
|
], AuthGuard.prototype, "init", null);
|
|
175
|
-
AuthGuard = __decorate([
|
|
176
|
-
Guard()
|
|
172
|
+
exports.AuthGuard = AuthGuard = __decorate([
|
|
173
|
+
(0, core_1.Guard)()
|
|
177
174
|
], AuthGuard);
|
|
178
|
-
export { AuthGuard };
|
|
179
175
|
//# sourceMappingURL=auth.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * as jwt from './lib/jwt';
|
|
|
5
5
|
export * as decorators from './lib/decorator';
|
|
6
6
|
export * from '@fefeding/common/dist/models/base/enumType';
|
|
7
7
|
export { BaseORM as BaseEntity } from '@fefeding/common/dist/models/base/baseORM';
|
|
8
|
+
export * from './constants/error-code';
|
|
8
9
|
export * from './middleware/apiResultFormatter';
|
|
9
10
|
export * from './middleware/requestInit';
|
|
10
11
|
export * from './middleware/detect.middleware';
|
|
@@ -16,3 +17,4 @@ export * from './types/base.controller';
|
|
|
16
17
|
export * from './types/session.service.interface';
|
|
17
18
|
export * from './service/session.service';
|
|
18
19
|
export * from './service/tencent.service';
|
|
20
|
+
export * from './filter/default.filter';
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.BaseEntity = exports.decorators = exports.jwt = exports.utils = exports.Configuration = exports.koa = void 0;
|
|
40
|
+
exports.koa = __importStar(require("@midwayjs/koa"));
|
|
41
|
+
var configuration_1 = require("./configuration");
|
|
42
|
+
Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return configuration_1.BaseConfiguration; } });
|
|
43
|
+
exports.utils = __importStar(require("./lib/utils"));
|
|
44
|
+
exports.jwt = __importStar(require("./lib/jwt"));
|
|
45
|
+
exports.decorators = __importStar(require("./lib/decorator"));
|
|
46
|
+
__exportStar(require("@fefeding/common/dist/models/base/enumType"), exports);
|
|
47
|
+
var baseORM_1 = require("@fefeding/common/dist/models/base/baseORM");
|
|
48
|
+
Object.defineProperty(exports, "BaseEntity", { enumerable: true, get: function () { return baseORM_1.BaseORM; } });
|
|
49
|
+
__exportStar(require("./constants/error-code"), exports);
|
|
50
|
+
__exportStar(require("./middleware/apiResultFormatter"), exports);
|
|
51
|
+
__exportStar(require("./middleware/requestInit"), exports);
|
|
52
|
+
__exportStar(require("./middleware/detect.middleware"), exports);
|
|
53
|
+
__exportStar(require("./guard/api"), exports);
|
|
54
|
+
__exportStar(require("./guard/auth"), exports);
|
|
55
|
+
__exportStar(require("./types/base.service"), exports);
|
|
56
|
+
__exportStar(require("./types/base.model.service"), exports);
|
|
57
|
+
__exportStar(require("./types/base.controller"), exports);
|
|
58
|
+
__exportStar(require("./types/session.service.interface"), exports);
|
|
59
|
+
__exportStar(require("./service/session.service"), exports);
|
|
60
|
+
__exportStar(require("./service/tencent.service"), exports);
|
|
61
|
+
__exportStar(require("./filter/default.filter"), exports);
|
|
19
62
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/decorator.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare function checkApiToken(need?: boolean): MethodDecorator;
|
|
2
|
-
export declare function getApiToken(target: any, propertyKey: string | symbol):
|
|
2
|
+
export declare function getApiToken(target: any, propertyKey: string | symbol): boolean;
|
|
3
3
|
export declare function checkLogin(need?: boolean): MethodDecorator;
|
|
4
4
|
export declare function getCheckLogin(target: any, propertyKey: string | symbol): any;
|
|
5
5
|
export declare function checkIP(need?: boolean): MethodDecorator;
|
package/dist/lib/decorator.js
CHANGED
|
@@ -1,37 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkApiToken = checkApiToken;
|
|
7
|
+
exports.getApiToken = getApiToken;
|
|
8
|
+
exports.checkLogin = checkLogin;
|
|
9
|
+
exports.getCheckLogin = getCheckLogin;
|
|
10
|
+
exports.checkIP = checkIP;
|
|
11
|
+
exports.getCheckIP = getCheckIP;
|
|
12
|
+
const core_1 = require("@midwayjs/core");
|
|
13
|
+
const decorator_1 = __importDefault(require("@fefeding/common/dist/utils/decorator"));
|
|
3
14
|
const CheckIPKey = 'decorator:CheckIPKey';
|
|
4
|
-
|
|
15
|
+
function checkApiToken(need = true) {
|
|
5
16
|
return (target, propertyKey) => {
|
|
6
|
-
savePropertyMetadata(
|
|
17
|
+
(0, core_1.savePropertyMetadata)(decorator_1.default.apiTokenMetadataKey, need, target, propertyKey);
|
|
7
18
|
};
|
|
8
19
|
}
|
|
9
|
-
|
|
20
|
+
function getApiToken(target, propertyKey) {
|
|
10
21
|
try {
|
|
11
|
-
const value = getPropertyMetadata(
|
|
12
|
-
return value;
|
|
22
|
+
const value = (0, core_1.getPropertyMetadata)(decorator_1.default.apiTokenMetadataKey, target, propertyKey);
|
|
23
|
+
return value === true;
|
|
13
24
|
}
|
|
14
|
-
catch
|
|
15
|
-
console.log(e);
|
|
25
|
+
catch {
|
|
16
26
|
return false;
|
|
17
27
|
}
|
|
18
28
|
}
|
|
19
|
-
|
|
29
|
+
function checkLogin(need = true) {
|
|
20
30
|
return (target, propertyKey) => {
|
|
21
|
-
savePropertyMetadata(
|
|
31
|
+
(0, core_1.savePropertyMetadata)(decorator_1.default.apiAuthMetadataKey, need, target, propertyKey);
|
|
22
32
|
};
|
|
23
33
|
}
|
|
24
|
-
|
|
25
|
-
const value = getPropertyMetadata(
|
|
34
|
+
function getCheckLogin(target, propertyKey) {
|
|
35
|
+
const value = (0, core_1.getPropertyMetadata)(decorator_1.default.apiAuthMetadataKey, target, propertyKey);
|
|
26
36
|
return value;
|
|
27
37
|
}
|
|
28
|
-
|
|
38
|
+
function checkIP(need = true) {
|
|
29
39
|
return (target, propertyKey) => {
|
|
30
|
-
savePropertyMetadata(CheckIPKey, need, target, propertyKey);
|
|
40
|
+
(0, core_1.savePropertyMetadata)(CheckIPKey, need, target, propertyKey);
|
|
31
41
|
};
|
|
32
42
|
}
|
|
33
|
-
|
|
34
|
-
const value = getPropertyMetadata(CheckIPKey, target, propertyKey);
|
|
43
|
+
function getCheckIP(target, propertyKey) {
|
|
44
|
+
const value = (0, core_1.getPropertyMetadata)(CheckIPKey, target, propertyKey);
|
|
35
45
|
return value;
|
|
36
46
|
}
|
|
37
47
|
//# sourceMappingURL=decorator.js.map
|
package/dist/lib/jwt.js
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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.decodeJWT = decodeJWT;
|
|
37
|
+
exports.encodeJWT = encodeJWT;
|
|
38
|
+
const jwt = __importStar(require("jsonwebtoken"));
|
|
39
|
+
function decodeJWT(token, secretKey, options) {
|
|
3
40
|
try {
|
|
4
41
|
const decoded = jwt.verify(token, secretKey, {
|
|
5
42
|
algorithms: ['HS256'],
|
|
@@ -12,7 +49,7 @@ export function decodeJWT(token, secretKey, options) {
|
|
|
12
49
|
return null;
|
|
13
50
|
}
|
|
14
51
|
}
|
|
15
|
-
|
|
52
|
+
function encodeJWT(data, secretKey, options) {
|
|
16
53
|
const token = jwt.sign(data, secretKey, {
|
|
17
54
|
algorithm: 'HS256',
|
|
18
55
|
...(options || {}),
|
package/dist/lib/request.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requestServer = exports.requestApi = void 0;
|
|
4
|
+
const axios_1 = require("@fefeding/common/dist/utils/axios");
|
|
5
|
+
Object.defineProperty(exports, "requestApi", { enumerable: true, get: function () { return axios_1.requestApi; } });
|
|
6
|
+
Object.defineProperty(exports, "requestServer", { enumerable: true, get: function () { return axios_1.requestServer; } });
|
|
3
7
|
//# sourceMappingURL=request.js.map
|
package/dist/lib/utils.js
CHANGED
|
@@ -1,6 +1,28 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.loadEnv = void 0;
|
|
18
|
+
exports.checkUrlHost = checkUrlHost;
|
|
19
|
+
exports.getDefaultTemplate = getDefaultTemplate;
|
|
20
|
+
exports.getAuthToken = getAuthToken;
|
|
21
|
+
exports.setAuthToken = setAuthToken;
|
|
22
|
+
__exportStar(require("./jwt"), exports);
|
|
23
|
+
const env_1 = require("../config/env");
|
|
24
|
+
Object.defineProperty(exports, "loadEnv", { enumerable: true, get: function () { return env_1.loadEnv; } });
|
|
25
|
+
function checkUrlHost(url, host) {
|
|
4
26
|
if (/^\/[^\/]{1,}/.test(url))
|
|
5
27
|
return true;
|
|
6
28
|
if (Array.isArray(host)) {
|
|
@@ -13,7 +35,7 @@ export function checkUrlHost(url, host) {
|
|
|
13
35
|
const reg = new RegExp('^(http(s)?:)?//' + host);
|
|
14
36
|
return reg.test(url);
|
|
15
37
|
}
|
|
16
|
-
|
|
38
|
+
function getDefaultTemplate(ctx, file = 'index.html', data = {}) {
|
|
17
39
|
const viteTarget = process.env.VITE_PORT;
|
|
18
40
|
const config = ctx.app.getConfig();
|
|
19
41
|
const prefix = config.koa.globalPrefix;
|
|
@@ -34,7 +56,7 @@ export function getDefaultTemplate(ctx, file = 'index.html', data = {}) {
|
|
|
34
56
|
};
|
|
35
57
|
return ctx.render(file, option);
|
|
36
58
|
}
|
|
37
|
-
|
|
59
|
+
function getAuthToken(ctx, option) {
|
|
38
60
|
const body = (ctx.request.body || {});
|
|
39
61
|
const token = ctx.URL.searchParams.get('token') ||
|
|
40
62
|
ctx.request.header['x-auth-token'] ||
|
|
@@ -46,12 +68,11 @@ export function getAuthToken(ctx, option) {
|
|
|
46
68
|
body.token;
|
|
47
69
|
return token;
|
|
48
70
|
}
|
|
49
|
-
|
|
71
|
+
function setAuthToken(ctx, token, option) {
|
|
50
72
|
ctx.cookies.set('token', token, {
|
|
51
73
|
httpOnly: true,
|
|
52
74
|
maxAge: 1000 * 60 * 60 * 24 * 30,
|
|
53
75
|
...(option || {}),
|
|
54
76
|
});
|
|
55
77
|
}
|
|
56
|
-
export { loadEnv };
|
|
57
78
|
//# sourceMappingURL=utils.js.map
|
|
@@ -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,8 +8,11 @@ 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
|
-
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ApiResultFormatterMiddleware = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const stream_1 = require("stream");
|
|
15
|
+
const error_code_1 = require("../constants/error-code");
|
|
12
16
|
let ApiResultFormatterMiddleware = class ApiResultFormatterMiddleware {
|
|
13
17
|
ignore(ctx) {
|
|
14
18
|
const koaCtx = ctx;
|
|
@@ -39,17 +43,16 @@ let ApiResultFormatterMiddleware = class ApiResultFormatterMiddleware {
|
|
|
39
43
|
}
|
|
40
44
|
}
|
|
41
45
|
catch (err) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
koaCtx.body = err;
|
|
46
|
+
if (err instanceof error_code_1.BizError || typeof err?.ret === 'number') {
|
|
47
|
+
koaCtx.body = err instanceof error_code_1.BizError ? err.toJSON() : err;
|
|
45
48
|
}
|
|
46
49
|
else {
|
|
47
50
|
koaCtx.body = {
|
|
48
|
-
ret:
|
|
49
|
-
msg: err?.message || '
|
|
51
|
+
ret: error_code_1.ErrorCode.SYSTEM_ERROR,
|
|
52
|
+
msg: err?.message || '系统错误',
|
|
50
53
|
};
|
|
51
54
|
}
|
|
52
|
-
koaCtx.logger.error(koaCtx.request.rawBody, koaCtx.body);
|
|
55
|
+
koaCtx.logger.error('API error:', koaCtx.request.rawBody, koaCtx.body);
|
|
53
56
|
}
|
|
54
57
|
finally {
|
|
55
58
|
if (koaCtx.status !== 302)
|
|
@@ -64,17 +67,17 @@ let ApiResultFormatterMiddleware = class ApiResultFormatterMiddleware {
|
|
|
64
67
|
canFormat(data) {
|
|
65
68
|
return (data !== '' &&
|
|
66
69
|
!Buffer.isBuffer(data) &&
|
|
67
|
-
!(data instanceof Stream ||
|
|
70
|
+
!(data instanceof stream_1.Stream ||
|
|
68
71
|
data instanceof Uint8Array ||
|
|
69
72
|
data instanceof Blob));
|
|
70
73
|
}
|
|
71
74
|
};
|
|
75
|
+
exports.ApiResultFormatterMiddleware = ApiResultFormatterMiddleware;
|
|
72
76
|
__decorate([
|
|
73
|
-
Config('apiOption'),
|
|
77
|
+
(0, core_1.Config)('apiOption'),
|
|
74
78
|
__metadata("design:type", Object)
|
|
75
79
|
], ApiResultFormatterMiddleware.prototype, "apiOption", void 0);
|
|
76
|
-
ApiResultFormatterMiddleware = __decorate([
|
|
77
|
-
Middleware()
|
|
80
|
+
exports.ApiResultFormatterMiddleware = ApiResultFormatterMiddleware = __decorate([
|
|
81
|
+
(0, core_1.Middleware)()
|
|
78
82
|
], ApiResultFormatterMiddleware);
|
|
79
|
-
export { ApiResultFormatterMiddleware };
|
|
80
83
|
//# sourceMappingURL=apiResultFormatter.js.map
|
|
@@ -1,10 +1,13 @@
|
|
|
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.DetectMiddleware = void 0;
|
|
10
|
+
const core_1 = require("@midwayjs/core");
|
|
8
11
|
let DetectMiddleware = class DetectMiddleware {
|
|
9
12
|
resolve() {
|
|
10
13
|
return async (ctx, next) => {
|
|
@@ -48,8 +51,8 @@ let DetectMiddleware = class DetectMiddleware {
|
|
|
48
51
|
};
|
|
49
52
|
}
|
|
50
53
|
};
|
|
51
|
-
DetectMiddleware =
|
|
52
|
-
|
|
54
|
+
exports.DetectMiddleware = DetectMiddleware;
|
|
55
|
+
exports.DetectMiddleware = DetectMiddleware = __decorate([
|
|
56
|
+
(0, core_1.Middleware)()
|
|
53
57
|
], DetectMiddleware);
|
|
54
|
-
export { DetectMiddleware };
|
|
55
58
|
//# sourceMappingURL=detect.middleware.js.map
|