@cicctencent/midwayjs-base 1.0.18 → 1.0.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.
- package/package.json +65 -65
- package/typings/midway.d.ts +54 -54
- package/dist/base/base.controller.d.ts +0 -5
- package/dist/base/base.controller.js +0 -28
- package/dist/base/base.model.service.d.ts +0 -29
- package/dist/base/base.model.service.js +0 -86
- package/dist/base/base.service.d.ts +0 -28
- package/dist/base/base.service.js +0 -85
- package/dist/config/config.default.d.ts +0 -3
- package/dist/config/config.default.js +0 -145
- package/dist/config/env.d.ts +0 -1
- package/dist/config/env.js +0 -19
- package/dist/configuration.d.ts +0 -5
- package/dist/configuration.js +0 -75
- package/dist/filter/default.filter.d.ts +0 -7
- package/dist/filter/default.filter.js +0 -24
- package/dist/filter/notfound.filter.d.ts +0 -5
- package/dist/filter/notfound.filter.js +0 -22
- package/dist/guard/api.d.ts +0 -16
- package/dist/guard/api.js +0 -88
- package/dist/guard/auth.d.ts +0 -14
- package/dist/guard/auth.js +0 -149
- package/dist/index.d.ts +0 -16
- package/dist/index.js +0 -37
- package/dist/lib/decorator.d.ts +0 -36
- package/dist/lib/decorator.js +0 -79
- package/dist/lib/request.d.ts +0 -7
- package/dist/lib/request.js +0 -7
- package/dist/lib/utils.d.ts +0 -15
- package/dist/lib/utils.js +0 -100
- package/dist/middleware/apiResultFormatter.d.ts +0 -8
- package/dist/middleware/apiResultFormatter.js +0 -84
- package/dist/middleware/detect.middleware.d.ts +0 -5
- package/dist/middleware/detect.middleware.js +0 -61
- package/dist/middleware/requestInit.d.ts +0 -8
- package/dist/middleware/requestInit.js +0 -100
- package/dist/service/session.service.d.ts +0 -39
- package/dist/service/session.service.js +0 -93
- package/dist/service/tencent.service.d.ts +0 -38
- package/dist/service/tencent.service.js +0 -87
package/dist/index.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
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.BaseEntity = exports.decorators = exports.utils = exports.Configuration = exports.koa = void 0;
|
|
18
|
-
// @ts-ignore
|
|
19
|
-
exports.koa = require("@midwayjs/koa");
|
|
20
|
-
var configuration_1 = require("./configuration");
|
|
21
|
-
Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return configuration_1.BaseConfiguration; } });
|
|
22
|
-
exports.utils = require("./lib/utils");
|
|
23
|
-
exports.decorators = require("./lib/decorator");
|
|
24
|
-
__exportStar(require("@fefeding/common/dist/models/base/enumType"), exports);
|
|
25
|
-
var baseORM_1 = require("@fefeding/common/dist/models/base/baseORM");
|
|
26
|
-
Object.defineProperty(exports, "BaseEntity", { enumerable: true, get: function () { return baseORM_1.BaseORM; } });
|
|
27
|
-
__exportStar(require("./middleware/apiResultFormatter"), exports);
|
|
28
|
-
__exportStar(require("./middleware/requestInit"), exports);
|
|
29
|
-
__exportStar(require("./middleware/detect.middleware"), exports);
|
|
30
|
-
__exportStar(require("./guard/api"), exports);
|
|
31
|
-
__exportStar(require("./guard/auth"), exports);
|
|
32
|
-
__exportStar(require("./base/base.service"), exports);
|
|
33
|
-
__exportStar(require("./base/base.model.service"), exports);
|
|
34
|
-
__exportStar(require("./service/session.service"), exports);
|
|
35
|
-
__exportStar(require("./service/tencent.service"), exports);
|
|
36
|
-
__exportStar(require("./base/base.controller"), exports);
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxhQUFhO0FBQ2IsdUNBQXFDO0FBRXJDLGlEQUFxRTtBQUE1RCw4R0FBQSxpQkFBaUIsT0FBaUI7QUFFM0MsdUNBQXFDO0FBQ3JDLGdEQUE4QztBQUc5Qyw2RUFBMkQ7QUFDM0QscUVBQWtGO0FBQXpFLHFHQUFBLE9BQU8sT0FBYztBQUc5QixrRUFBZ0Q7QUFDaEQsMkRBQXlDO0FBQ3pDLGlFQUErQztBQUUvQyw4Q0FBNEI7QUFDNUIsK0NBQTZCO0FBRTdCLHNEQUFvQztBQUNwQyw0REFBMEM7QUFDMUMsNERBQTBDO0FBQzFDLDREQUEwQztBQUUxQyx5REFBdUMifQ==
|
package/dist/lib/decorator.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 判断是否校验token的api装饰器
|
|
3
|
-
* @param need 是否要
|
|
4
|
-
* @returns
|
|
5
|
-
*/
|
|
6
|
-
export declare function checkApiToken(need?: boolean): MethodDecorator;
|
|
7
|
-
/**
|
|
8
|
-
* 获取装饰的是否需要toke验证
|
|
9
|
-
* @param target 对象
|
|
10
|
-
* @param propertyKey 属性或方法名
|
|
11
|
-
*/
|
|
12
|
-
export declare function getApiToken(target: any, propertyKey: any): any;
|
|
13
|
-
/**
|
|
14
|
-
* 判断是否校验登陆态
|
|
15
|
-
* @param need 是否要
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
export declare function checkLogin(need?: boolean): MethodDecorator;
|
|
19
|
-
/**
|
|
20
|
-
* 获取装饰的是否需要校验登陆态
|
|
21
|
-
* @param target 对象
|
|
22
|
-
* @param propertyKey 属性或方法名
|
|
23
|
-
*/
|
|
24
|
-
export declare function getCheckLogin(target: any, propertyKey: any): any;
|
|
25
|
-
/**
|
|
26
|
-
* 判断是否校验在IP白名单内
|
|
27
|
-
* @param need 是否要
|
|
28
|
-
* @returns
|
|
29
|
-
*/
|
|
30
|
-
export declare function checkIP(need?: boolean): MethodDecorator;
|
|
31
|
-
/**
|
|
32
|
-
* 获取装饰的是否需要校验IP白名单
|
|
33
|
-
* @param target 对象
|
|
34
|
-
* @param propertyKey 属性或方法名
|
|
35
|
-
*/
|
|
36
|
-
export declare function getCheckIP(target: any, propertyKey: any): any;
|
package/dist/lib/decorator.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkApiToken = checkApiToken;
|
|
4
|
-
exports.getApiToken = getApiToken;
|
|
5
|
-
exports.checkLogin = checkLogin;
|
|
6
|
-
exports.getCheckLogin = getCheckLogin;
|
|
7
|
-
exports.checkIP = checkIP;
|
|
8
|
-
exports.getCheckIP = getCheckIP;
|
|
9
|
-
// @ts-ignore
|
|
10
|
-
const core_1 = require("@midwayjs/core");
|
|
11
|
-
const decorator_1 = require("@fefeding/common/dist/utils/decorator");
|
|
12
|
-
const CheckIPKey = 'decorator:CheckIPKey';
|
|
13
|
-
/**
|
|
14
|
-
* 判断是否校验token的api装饰器
|
|
15
|
-
* @param need 是否要
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
function checkApiToken(need = true) {
|
|
19
|
-
return (target, propertyKey) => {
|
|
20
|
-
// 只保存元数据
|
|
21
|
-
(0, core_1.savePropertyMetadata)(decorator_1.default.apiTokenMetadataKey, need, target, propertyKey);
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 获取装饰的是否需要toke验证
|
|
26
|
-
* @param target 对象
|
|
27
|
-
* @param propertyKey 属性或方法名
|
|
28
|
-
*/
|
|
29
|
-
function getApiToken(target, propertyKey) {
|
|
30
|
-
try {
|
|
31
|
-
const value = (0, core_1.getPropertyMetadata)(decorator_1.default.apiTokenMetadataKey, target, propertyKey);
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
console.log(e);
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* 判断是否校验登陆态
|
|
41
|
-
* @param need 是否要
|
|
42
|
-
* @returns
|
|
43
|
-
*/
|
|
44
|
-
function checkLogin(need = true) {
|
|
45
|
-
return (target, propertyKey) => {
|
|
46
|
-
// 只保存元数据
|
|
47
|
-
(0, core_1.savePropertyMetadata)(decorator_1.default.apiAuthMetadataKey, need, target, propertyKey);
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 获取装饰的是否需要校验登陆态
|
|
52
|
-
* @param target 对象
|
|
53
|
-
* @param propertyKey 属性或方法名
|
|
54
|
-
*/
|
|
55
|
-
function getCheckLogin(target, propertyKey) {
|
|
56
|
-
const value = (0, core_1.getPropertyMetadata)(decorator_1.default.apiAuthMetadataKey, target, propertyKey);
|
|
57
|
-
return value;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* 判断是否校验在IP白名单内
|
|
61
|
-
* @param need 是否要
|
|
62
|
-
* @returns
|
|
63
|
-
*/
|
|
64
|
-
function checkIP(need = true) {
|
|
65
|
-
return (target, propertyKey) => {
|
|
66
|
-
// 只保存元数据
|
|
67
|
-
(0, core_1.savePropertyMetadata)(CheckIPKey, need, target, propertyKey);
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* 获取装饰的是否需要校验IP白名单
|
|
72
|
-
* @param target 对象
|
|
73
|
-
* @param propertyKey 属性或方法名
|
|
74
|
-
*/
|
|
75
|
-
function getCheckIP(target, propertyKey) {
|
|
76
|
-
const value = (0, core_1.getPropertyMetadata)(CheckIPKey, target, propertyKey);
|
|
77
|
-
return value;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxzQ0FVQztBQU9ELGtDQWFDO0FBT0QsZ0NBVUM7QUFPRCxzQ0FPQztBQVNELDBCQVVDO0FBT0QsZ0NBT0M7QUF6R0QsYUFBYTtBQUNiLHlDQUEyRTtBQUMzRSxxRUFBK0Q7QUFFL0QsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUM7QUFFMUM7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSTtJQUNyQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFO1FBQzNCLFNBQVM7UUFDVCxJQUFBLDJCQUFvQixFQUNoQixtQkFBVSxDQUFDLG1CQUFtQixFQUM5QixJQUFJLEVBQ0osTUFBTSxFQUNOLFdBQVcsQ0FDZCxDQUFDO0lBQ04sQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVc7SUFDM0MsSUFBSSxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBQSwwQkFBbUIsRUFDN0IsbUJBQVUsQ0FBQyxtQkFBbUIsRUFDOUIsTUFBTSxFQUNOLFdBQVcsQ0FDZCxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELE9BQU0sQ0FBQyxFQUFFLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJO0lBQ2xDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDM0IsU0FBUztRQUNULElBQUEsMkJBQW9CLEVBQ2hCLG1CQUFVLENBQUMsa0JBQWtCLEVBQzdCLElBQUksRUFDSixNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7SUFDTixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVztJQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFBLDBCQUFtQixFQUM3QixtQkFBVSxDQUFDLGtCQUFrQixFQUM3QixNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBSUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSTtJQUMvQixPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFO1FBQzNCLFNBQVM7UUFDVCxJQUFBLDJCQUFvQixFQUNoQixVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixXQUFXLENBQ2QsQ0FBQztJQUNOLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXO0lBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUEsMEJBQW1CLEVBQzdCLFVBQVUsRUFDVixNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIn0=
|
package/dist/lib/request.d.ts
DELETED
package/dist/lib/request.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
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; } });
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBOEU7QUFPckUsMkZBUEEsa0JBQVUsT0FPQTtBQUFFLDhGQVBBLHFCQUFhLE9BT0EifQ==
|
package/dist/lib/utils.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Context } from '@midwayjs/koa';
|
|
2
|
-
import { loadEnv } from '../config/env';
|
|
3
|
-
export declare function checkUrlHost(url: string, host: string | Array<string>): boolean;
|
|
4
|
-
/**
|
|
5
|
-
* render模板
|
|
6
|
-
* @param ctx
|
|
7
|
-
* @param file
|
|
8
|
-
* @returns
|
|
9
|
-
*/
|
|
10
|
-
export declare function getDefaultTemplate(ctx: Context, file?: string, data?: any): Promise<string>;
|
|
11
|
-
export declare function getAuthToken(ctx: Context): any;
|
|
12
|
-
export declare function setAuthToken(ctx: Context, token: string): void;
|
|
13
|
-
export declare function decodeJWT(token: string, secretKey: string): any;
|
|
14
|
-
export declare function encodeJWT(data: any, secretKey: string): any;
|
|
15
|
-
export { loadEnv };
|
package/dist/lib/utils.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.loadEnv = void 0;
|
|
4
|
-
exports.checkUrlHost = checkUrlHost;
|
|
5
|
-
exports.getDefaultTemplate = getDefaultTemplate;
|
|
6
|
-
exports.getAuthToken = getAuthToken;
|
|
7
|
-
exports.setAuthToken = setAuthToken;
|
|
8
|
-
exports.decodeJWT = decodeJWT;
|
|
9
|
-
exports.encodeJWT = encodeJWT;
|
|
10
|
-
const jwt = require("jsonwebtoken");
|
|
11
|
-
const env_1 = require("../config/env");
|
|
12
|
-
Object.defineProperty(exports, "loadEnv", { enumerable: true, get: function () { return env_1.loadEnv; } });
|
|
13
|
-
//判断url是否是对应的域名
|
|
14
|
-
function checkUrlHost(url, host) {
|
|
15
|
-
if (/^\/[^\/]{1,}/.test(url))
|
|
16
|
-
return true;
|
|
17
|
-
if (Array.isArray(host)) {
|
|
18
|
-
for (const h of host) {
|
|
19
|
-
if (checkUrlHost(url, h))
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
const reg = new RegExp('^(http(s)?:)?//' + host);
|
|
25
|
-
return reg.test(url);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* render模板
|
|
29
|
-
* @param ctx
|
|
30
|
-
* @param file
|
|
31
|
-
* @returns
|
|
32
|
-
*/
|
|
33
|
-
function getDefaultTemplate(ctx, file = 'index.html', data = {}) {
|
|
34
|
-
// 前端端口,如果为空,说明就是开发环境了
|
|
35
|
-
const viteTarget = process.env.VITE_PORT;
|
|
36
|
-
const config = ctx.app.getConfig();
|
|
37
|
-
const prefix = config.koa.globalPrefix;
|
|
38
|
-
const option = {
|
|
39
|
-
data: {
|
|
40
|
-
config: {
|
|
41
|
-
prefix,
|
|
42
|
-
},
|
|
43
|
-
session: ctx.currentSession || null,
|
|
44
|
-
...data
|
|
45
|
-
},
|
|
46
|
-
title: data.title || '',
|
|
47
|
-
description: process.env.DESCRIPTION || '',
|
|
48
|
-
env: process.env,
|
|
49
|
-
prefix,
|
|
50
|
-
viteTarget: viteTarget ? `//${ctx.hostname}:${viteTarget}` : '',
|
|
51
|
-
};
|
|
52
|
-
//console.log(file, data);
|
|
53
|
-
return ctx.render(file, option);
|
|
54
|
-
}
|
|
55
|
-
// 从当前请求中获取登陆态token
|
|
56
|
-
function getAuthToken(ctx) {
|
|
57
|
-
const body = (ctx.request.body || {});
|
|
58
|
-
const token = ctx.URL.searchParams.get('token') ||
|
|
59
|
-
ctx.request.header['x-auth-token'] ||
|
|
60
|
-
ctx.cookies.get('token', {
|
|
61
|
-
signed: false,
|
|
62
|
-
}) ||
|
|
63
|
-
ctx.request.header['authorization'] ||
|
|
64
|
-
body.token;
|
|
65
|
-
return token;
|
|
66
|
-
}
|
|
67
|
-
// 种登陆态token
|
|
68
|
-
function setAuthToken(ctx, token) {
|
|
69
|
-
ctx.cookies.set('token', token, {
|
|
70
|
-
httpOnly: true,
|
|
71
|
-
maxAge: 1000 * 60 * 60 * 24 * 30,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
// 验证jwt
|
|
75
|
-
function decodeJWT(token, secretKey) {
|
|
76
|
-
try {
|
|
77
|
-
const decoded = jwt.verify(token, secretKey);
|
|
78
|
-
return decoded;
|
|
79
|
-
}
|
|
80
|
-
catch (err) {
|
|
81
|
-
console.error('Token 验证失败:', err.message); // 如过期、篡改等
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/*
|
|
86
|
-
id: string;
|
|
87
|
-
code?: string;
|
|
88
|
-
loginId: string;
|
|
89
|
-
userId?: number;
|
|
90
|
-
user?: User;
|
|
91
|
-
account?: Account;
|
|
92
|
-
appId?: number;
|
|
93
|
-
status?: EStatus;
|
|
94
|
-
lastDate: Date;
|
|
95
|
-
*/
|
|
96
|
-
function encodeJWT(data, secretKey) {
|
|
97
|
-
const token = jwt.sign(data, secretKey, { algorithm: 'HS256' });
|
|
98
|
-
return token;
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLG9DQVVDO0FBUUQsZ0RBcUJDO0FBR0Qsb0NBV0M7QUFHRCxvQ0FLQztBQUdELDhCQVFDO0FBYUQsOEJBR0M7QUE1RkQsb0NBQW9DO0FBQ3BDLHVDQUF3QztBQThGcEMsd0ZBOUZLLGFBQU8sT0E4Rkw7QUE1RlgsZUFBZTtBQUNmLFNBQWdCLFlBQVksQ0FBQyxHQUFXLEVBQUUsSUFBMEI7SUFDaEUsSUFBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JCLEtBQUksTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsSUFBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7O09BS087QUFDUCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFZLEVBQUUsSUFBSSxHQUFDLFlBQVksRUFBRSxPQUFZLEVBQUU7SUFDOUUsc0JBQXNCO0lBQ3RCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7SUFDdkMsTUFBTSxNQUFNLEdBQUc7UUFDWCxJQUFJLEVBQUU7WUFDRixNQUFNLEVBQUU7Z0JBQ0osTUFBTTthQUNUO1lBQ0QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxjQUFjLElBQUUsSUFBSTtZQUNqQyxHQUFHLElBQUk7U0FDVjtRQUNELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDdkIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUU7UUFDMUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1FBQ2hCLE1BQU07UUFDTixVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxRQUFRLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDbEUsQ0FBQztJQUNGLDBCQUEwQjtJQUMxQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxtQkFBbUI7QUFDbkIsU0FBZ0IsWUFBWSxDQUFDLEdBQVk7SUFDckMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQVEsQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FDWCxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNsQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDckIsTUFBTSxFQUFFLEtBQUs7U0FDaEIsQ0FBQztRQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFFO0lBQ3BCLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxZQUFZO0FBQ1osU0FBZ0IsWUFBWSxDQUFDLEdBQVksRUFBRSxLQUFhO0lBQ3BELEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUU7UUFDNUIsUUFBUSxFQUFFLElBQUk7UUFDZCxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7S0FDbkMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFFBQVE7QUFDUixTQUFnQixTQUFTLENBQUMsS0FBYSxFQUFFLFNBQWlCO0lBQ3RELElBQUksQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7RUFVRTtBQUNGLFNBQWdCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsU0FBaUI7SUFDbEQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEUsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyJ9
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IMiddleware } from '@midwayjs/core';
|
|
2
|
-
import { NextFunction, Context } from '@midwayjs/koa';
|
|
3
|
-
export declare class ApiResultFormatterMiddleware implements IMiddleware<Context, NextFunction> {
|
|
4
|
-
apiOption: any;
|
|
5
|
-
ignore(ctx: Context): boolean;
|
|
6
|
-
resolve(): (ctx: Context, next: NextFunction) => Promise<void>;
|
|
7
|
-
canFormat(data: any): boolean;
|
|
8
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ApiResultFormatterMiddleware = void 0;
|
|
13
|
-
// @ts-ignore
|
|
14
|
-
const core_1 = require("@midwayjs/core");
|
|
15
|
-
const stream_1 = require("stream");
|
|
16
|
-
let ApiResultFormatterMiddleware = class ApiResultFormatterMiddleware {
|
|
17
|
-
apiOption;
|
|
18
|
-
ignore(ctx) {
|
|
19
|
-
// 下面的路由将忽略此中间件
|
|
20
|
-
if (this.apiOption?.ignore) {
|
|
21
|
-
for (const ig of this.apiOption.ignore) {
|
|
22
|
-
if (typeof ig === 'string' && ctx.path === ig)
|
|
23
|
-
return true;
|
|
24
|
-
if (ig?.test?.(ctx.path))
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
resolve() {
|
|
31
|
-
return async (ctx, next) => {
|
|
32
|
-
const isApi = this.apiOption?.reg?.test(ctx.request.path);
|
|
33
|
-
//console.log(ctx.URL.toString(), isApi);
|
|
34
|
-
if (isApi) {
|
|
35
|
-
try {
|
|
36
|
-
await next();
|
|
37
|
-
const res = ctx.body;
|
|
38
|
-
// 是否是可格式化的类型
|
|
39
|
-
if (this.canFormat(res)) {
|
|
40
|
-
ctx.body = Object.assign({
|
|
41
|
-
ret: 0,
|
|
42
|
-
msg: 'success',
|
|
43
|
-
data: null,
|
|
44
|
-
}, typeof res?.ret === 'number' ? res : { data: res });
|
|
45
|
-
//ctx.logger.info(ctx.request.rawBody, ctx.body);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch (err) {
|
|
49
|
-
console.error(err);
|
|
50
|
-
if (typeof err.ret === 'number') {
|
|
51
|
-
ctx.body = err;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
ctx.body = {
|
|
55
|
-
ret: 1001,
|
|
56
|
-
msg: err.message,
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
ctx.logger.error(ctx.request.rawBody, ctx.body);
|
|
60
|
-
}
|
|
61
|
-
finally {
|
|
62
|
-
if (ctx.status !== 302)
|
|
63
|
-
ctx.status = 200;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
await next();
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
canFormat(data) {
|
|
72
|
-
return data !== '' && !Buffer.isBuffer(data) &&
|
|
73
|
-
!(data instanceof stream_1.Stream || data instanceof Uint8Array || data instanceof Blob);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
exports.ApiResultFormatterMiddleware = ApiResultFormatterMiddleware;
|
|
77
|
-
__decorate([
|
|
78
|
-
(0, core_1.Config)('apiOption'),
|
|
79
|
-
__metadata("design:type", Object)
|
|
80
|
-
], ApiResultFormatterMiddleware.prototype, "apiOption", void 0);
|
|
81
|
-
exports.ApiResultFormatterMiddleware = ApiResultFormatterMiddleware = __decorate([
|
|
82
|
-
(0, core_1.Middleware)()
|
|
83
|
-
], ApiResultFormatterMiddleware);
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpUmVzdWx0Rm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZGRsZXdhcmUvYXBpUmVzdWx0Rm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7QUFDYix5Q0FBaUU7QUFFakUsbUNBQWdDO0FBR3pCLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTRCO0lBSXJDLFNBQVMsQ0FBTTtJQUVmLE1BQU0sQ0FBQyxHQUFZO1FBQ2YsZUFBZTtRQUNmLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QixLQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BDLElBQUcsT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDMUQsSUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFBRSxPQUFPLElBQUksQ0FBQztZQUN6QyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxLQUFLLEVBQUUsR0FBWSxFQUFFLElBQWtCLEVBQUUsRUFBRTtZQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRCx5Q0FBeUM7WUFDekMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUM7b0JBQ0QsTUFBTSxJQUFJLEVBQUUsQ0FBQztvQkFDYixNQUFNLEdBQUcsR0FBUSxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUMxQixhQUFhO29CQUNiLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNyQixHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ3BCOzRCQUNJLEdBQUcsRUFBRSxDQUFDOzRCQUNOLEdBQUcsRUFBRSxTQUFTOzRCQUNkLElBQUksRUFBRSxJQUFJO3lCQUNiLEVBQ0QsT0FBTyxHQUFHLEVBQUUsR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FDckQsQ0FBQzt3QkFDRixpREFBaUQ7b0JBQ3JELENBQUM7Z0JBQ0wsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUM5QixHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztvQkFDbkIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLEdBQUcsQ0FBQyxJQUFJLEdBQUc7NEJBQ1AsR0FBRyxFQUFFLElBQUk7NEJBQ1QsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPO3lCQUNuQixDQUFDO29CQUNOLENBQUM7b0JBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwRCxDQUFDO3dCQUNPLENBQUM7b0JBQ0wsSUFBRyxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUc7d0JBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQzVDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELFNBQVMsQ0FBQyxJQUFTO1FBQ2YsT0FBTyxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDNUMsQ0FBQyxDQUFDLElBQUksWUFBWSxlQUFNLElBQUksSUFBSSxZQUFZLFVBQVUsSUFBSSxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNKLENBQUE7QUE3RFksb0VBQTRCO0FBSXJDO0lBREMsSUFBQSxhQUFNLEVBQUMsV0FBVyxDQUFDOzsrREFDTDt1Q0FKTiw0QkFBNEI7SUFEeEMsSUFBQSxpQkFBVSxHQUFFO0dBQ0EsNEJBQTRCLENBNkR4QyJ9
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.DetectMiddleware = void 0;
|
|
10
|
-
const core_1 = require("@midwayjs/core");
|
|
11
|
-
let DetectMiddleware = class DetectMiddleware {
|
|
12
|
-
resolve() {
|
|
13
|
-
return async (ctx, next) => {
|
|
14
|
-
const UA = ctx.get('user-agent') || '';
|
|
15
|
-
const IS_MOBILE = /Mobile/i.test(UA);
|
|
16
|
-
const VER_MQQ = UA.match(/QQ\/([\d.]+)/i) && UA.match(/QQ\/([\d.]+)/i)?.[1];
|
|
17
|
-
const IS_MQQ = Boolean(VER_MQQ);
|
|
18
|
-
// 微信版本号可能分4段,影响业务代码里使用semver比较版本号(会报错),如果业务需要4段版本号可以自己从ua里取
|
|
19
|
-
const VER_WEIXIN = UA.match(/MicroMessenger\/([\d.]+)/i) &&
|
|
20
|
-
UA.match(/MicroMessenger\/([\d.]+)/i)?.[1]
|
|
21
|
-
.split('.')
|
|
22
|
-
.slice(0, 3)
|
|
23
|
-
.join('.');
|
|
24
|
-
const IS_WEIXIN = Boolean(VER_WEIXIN);
|
|
25
|
-
// 是否是开发者工具
|
|
26
|
-
const IS_WECHATTOOLS = /wechatdevtools\//i.test(UA);
|
|
27
|
-
// @ts-ignore
|
|
28
|
-
const IS_PCWEIXIN = /(Windows|Mac)Wechat/i.test(UA);
|
|
29
|
-
// 是否是企业微信
|
|
30
|
-
const IS_WXWORK = /wxwork\//i.test(UA);
|
|
31
|
-
// @ts-ignore
|
|
32
|
-
const VER_MINA = /miniProgram/i.test(UA);
|
|
33
|
-
const IS_MINA = Boolean(VER_MINA);
|
|
34
|
-
let requestIP = (ctx.request.header['x-forwarded-for'] ||
|
|
35
|
-
ctx.request.ip || '').toString();
|
|
36
|
-
if (requestIP.includes(','))
|
|
37
|
-
requestIP = requestIP.split(',')[0];
|
|
38
|
-
const clientIP = (ctx.request.header['x-client-ip'] || requestIP).toString();
|
|
39
|
-
const hostname = ctx.get('tencent-acceleration-domain-name') || ctx.request.hostname;
|
|
40
|
-
// 环境变量
|
|
41
|
-
ctx.detect = {
|
|
42
|
-
IS_MOBILE,
|
|
43
|
-
IS_MQQ,
|
|
44
|
-
IS_WEIXIN,
|
|
45
|
-
IS_WECHATTOOLS,
|
|
46
|
-
IS_PCWEIXIN,
|
|
47
|
-
IS_WXWORK,
|
|
48
|
-
IS_MINA,
|
|
49
|
-
CLIENTIP: clientIP,
|
|
50
|
-
REQUESTIP: requestIP,
|
|
51
|
-
HOSTNAME: hostname,
|
|
52
|
-
};
|
|
53
|
-
return next();
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
exports.DetectMiddleware = DetectMiddleware;
|
|
58
|
-
exports.DetectMiddleware = DetectMiddleware = __decorate([
|
|
59
|
-
(0, core_1.Middleware)()
|
|
60
|
-
], DetectMiddleware);
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0Lm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9kZXRlY3QubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx5Q0FBeUQ7QUFJbEQsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFDekIsT0FBTztRQUNILE9BQU8sS0FBSyxFQUFFLEdBQVksRUFBRSxJQUFrQixFQUFFLEVBQUU7WUFDOUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsNERBQTREO1lBQzVELE1BQU0sVUFBVSxHQUNaLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUM7Z0JBQ3JDLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDckMsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDVixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXRDLFdBQVc7WUFDWCxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsYUFBYTtZQUNiLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVO1lBQ1YsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxhQUFhO1lBQ2IsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFbEMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztnQkFDdEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoRSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTdFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUVyRixPQUFPO1lBQ1AsR0FBRyxDQUFDLE1BQU0sR0FBRztnQkFDVCxTQUFTO2dCQUNULE1BQU07Z0JBQ04sU0FBUztnQkFDVCxjQUFjO2dCQUNkLFdBQVc7Z0JBQ1gsU0FBUztnQkFDVCxPQUFPO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLFFBQVE7YUFDckIsQ0FBQTtZQUNELE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUE7QUFsRFksNENBQWdCOzJCQUFoQixnQkFBZ0I7SUFENUIsSUFBQSxpQkFBVSxHQUFFO0dBQ0EsZ0JBQWdCLENBa0Q1QiJ9
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IMiddleware } from '@midwayjs/core';
|
|
2
|
-
import { NextFunction, Context } from '@midwayjs/koa';
|
|
3
|
-
export declare class RequestInitMiddleware implements IMiddleware<Context, NextFunction> {
|
|
4
|
-
loggerConfig: any;
|
|
5
|
-
private staticExtensions;
|
|
6
|
-
ignore(ctx: Context): boolean;
|
|
7
|
-
resolve(): (ctx: Context, next: NextFunction) => Promise<any>;
|
|
8
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.RequestInitMiddleware = void 0;
|
|
13
|
-
const core_1 = require("@midwayjs/core");
|
|
14
|
-
const uuid_1 = require("uuid");
|
|
15
|
-
const ip = require("ip");
|
|
16
|
-
const logger_1 = require("@fefeding/common/dist/utils/logger");
|
|
17
|
-
let RequestInitMiddleware = class RequestInitMiddleware {
|
|
18
|
-
loggerConfig;
|
|
19
|
-
// 静态文件扩展名列表
|
|
20
|
-
staticExtensions = [
|
|
21
|
-
'.js', '.css', '.jpg', '.png', '.ico', '.svg',
|
|
22
|
-
'.woff', '.woff2', '.ttf', '.eot', '.map'
|
|
23
|
-
];
|
|
24
|
-
ignore(ctx) {
|
|
25
|
-
const isStaticFile = this.staticExtensions.some(ext => ctx.path.toLowerCase().endsWith(ext));
|
|
26
|
-
// 下面的路由将忽略此中间件
|
|
27
|
-
return isStaticFile || ctx.path === '/' || !ctx.path;
|
|
28
|
-
}
|
|
29
|
-
resolve() {
|
|
30
|
-
return async (ctx, next) => {
|
|
31
|
-
const body = (ctx.request.body || {});
|
|
32
|
-
let request_id = ctx.URL.searchParams.get('request_id') || body.request_id ||
|
|
33
|
-
ctx.request.header['x-request-id'] ||
|
|
34
|
-
ctx.cookies.get('request_id', {
|
|
35
|
-
signed: false,
|
|
36
|
-
});
|
|
37
|
-
if (!request_id)
|
|
38
|
-
request_id = (0, uuid_1.v4)().replace(/-/g, '');
|
|
39
|
-
ctx.request_id = request_id;
|
|
40
|
-
//console.log('request start', request_id, ctx.url);
|
|
41
|
-
const logger = new logger_1.default({
|
|
42
|
-
remoteUrl: this.loggerConfig?.remoteUrl,
|
|
43
|
-
serviceName: process.env.SERVICE_NAME,
|
|
44
|
-
logLevel: this.loggerConfig?.level,
|
|
45
|
-
requestId: ctx.request_id || '',
|
|
46
|
-
loginId: ctx.currentSession?.loginId || '',
|
|
47
|
-
userId: (ctx.currentSession?.userId || '').toString(),
|
|
48
|
-
clientIP: ctx.detect?.CLIENTIP || ctx.ip || '',
|
|
49
|
-
serverIP: ip.address() || '',
|
|
50
|
-
url: ctx.url,
|
|
51
|
-
});
|
|
52
|
-
// 将logger挂载到ctx上
|
|
53
|
-
ctx.logger = logger;
|
|
54
|
-
// 记录请求开始时间
|
|
55
|
-
const startTime = Date.now();
|
|
56
|
-
try {
|
|
57
|
-
// 继续处理请求
|
|
58
|
-
let result = await next();
|
|
59
|
-
const logData = {
|
|
60
|
-
requestId: ctx.request_id,
|
|
61
|
-
method: ctx.method,
|
|
62
|
-
status: ctx.status,
|
|
63
|
-
result,
|
|
64
|
-
responseTime: Date.now() - startTime
|
|
65
|
-
};
|
|
66
|
-
if (typeof logData.result === 'string') {
|
|
67
|
-
logData.result = logData.result.substring(0, 500);
|
|
68
|
-
}
|
|
69
|
-
// 记录成功响应
|
|
70
|
-
//logger.info('Request completed', logData);
|
|
71
|
-
return result;
|
|
72
|
-
}
|
|
73
|
-
catch (error) {
|
|
74
|
-
// 记录错误响应
|
|
75
|
-
logger.error('Request failed', {
|
|
76
|
-
requestId: ctx.request_id,
|
|
77
|
-
method: ctx.method,
|
|
78
|
-
url: ctx.href,
|
|
79
|
-
error: {
|
|
80
|
-
name: error.name,
|
|
81
|
-
message: error.message,
|
|
82
|
-
stack: error.stack
|
|
83
|
-
},
|
|
84
|
-
responseTime: Date.now() - startTime
|
|
85
|
-
});
|
|
86
|
-
// 将错误继续抛出,由全局异常处理器处理
|
|
87
|
-
throw error;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
exports.RequestInitMiddleware = RequestInitMiddleware;
|
|
93
|
-
__decorate([
|
|
94
|
-
(0, core_1.Config)('logger'),
|
|
95
|
-
__metadata("design:type", Object)
|
|
96
|
-
], RequestInitMiddleware.prototype, "loggerConfig", void 0);
|
|
97
|
-
exports.RequestInitMiddleware = RequestInitMiddleware = __decorate([
|
|
98
|
-
(0, core_1.Middleware)()
|
|
99
|
-
], RequestInitMiddleware);
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEluaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9yZXF1ZXN0SW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBaUU7QUFFakUsK0JBQWtDO0FBQ2xDLHlCQUF5QjtBQUN6QiwrREFBd0Q7QUFHakQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUFFOUIsWUFBWSxDQUFNO0lBQ2xCLFlBQVk7SUFDSixnQkFBZ0IsR0FBRztRQUN2QixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07S0FDNUMsQ0FBQztJQUNGLE1BQU0sQ0FBQyxHQUFZO1FBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNwRCxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FDckMsQ0FBQztRQUNGLGVBQWU7UUFDZixPQUFPLFlBQVksSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUNILE9BQU87UUFDSCxPQUFPLEtBQUssRUFBRSxHQUFZLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1lBQzlDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFRLENBQUM7WUFDN0MsSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVO2dCQUN0RSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FB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
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { MidwayCache } from '@midwayjs/cache-manager';
|
|
2
|
-
import { BaseService } from '../base/base.service';
|
|
3
|
-
import { Session, LoginByWxReq, LoginByWxRsp, LoginByAccountReq, LoginByAccountRsp } from '@fefeding/common/dist/models/account/session';
|
|
4
|
-
export declare class SessionService extends BaseService {
|
|
5
|
-
sessionCache: MidwayCache;
|
|
6
|
-
sessionOption: {
|
|
7
|
-
timeout: number;
|
|
8
|
-
secretKey: string;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* 根据ID获取session
|
|
12
|
-
* 并判断session是否在有效期
|
|
13
|
-
* @param id token唯一
|
|
14
|
-
*/
|
|
15
|
-
getLoginSession(id: string): Promise<Session>;
|
|
16
|
-
/**
|
|
17
|
-
* 下线
|
|
18
|
-
* @param id 需要下线的id或者session
|
|
19
|
-
*/
|
|
20
|
-
logout(id: string): Promise<any>;
|
|
21
|
-
/**
|
|
22
|
-
* 登录接口
|
|
23
|
-
* @param loginParams 登录参数
|
|
24
|
-
* @returns
|
|
25
|
-
*/
|
|
26
|
-
loginByWx(loginParams: LoginByWxReq): Promise<LoginByWxRsp>;
|
|
27
|
-
/**
|
|
28
|
-
* 帐号登陆
|
|
29
|
-
* @param loginParams
|
|
30
|
-
* @returns
|
|
31
|
-
*/
|
|
32
|
-
loginByAccount(loginParams: LoginByAccountReq): Promise<LoginByAccountRsp>;
|
|
33
|
-
/**
|
|
34
|
-
* 用临时码登陆
|
|
35
|
-
* @param code 登陆临时码
|
|
36
|
-
* @returns
|
|
37
|
-
*/
|
|
38
|
-
loginByCode(code: string): Promise<import("@fefeding/common/dist/models/base/response").default<any>>;
|
|
39
|
-
}
|