@cicctencent/midwayjs-base 1.0.35 → 1.0.36

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.
Files changed (66) hide show
  1. package/README.md +347 -1
  2. package/dist/types/config/config.default.d.ts +3 -0
  3. package/dist/types/config/config.default.js +171 -0
  4. package/dist/types/config/env.js +52 -0
  5. package/dist/{configuration.js → types/configuration.js} +44 -20
  6. package/dist/{filter → types/filter}/default.filter.js +1 -2
  7. package/dist/{filter → types/filter}/notfound.filter.js +1 -3
  8. package/dist/{guard → types/guard}/api.d.ts +0 -3
  9. package/dist/types/guard/api.js +77 -0
  10. package/dist/{guard → types/guard}/auth.d.ts +0 -3
  11. package/dist/types/guard/auth.js +182 -0
  12. package/dist/{index.js → types/index.js} +27 -6
  13. package/dist/types/lib/decorator.d.ts +6 -0
  14. package/dist/types/lib/decorator.js +48 -0
  15. package/dist/types/lib/jwt.d.ts +34 -0
  16. package/dist/types/lib/jwt.js +59 -0
  17. package/dist/{lib → types/lib}/request.d.ts +0 -5
  18. package/dist/{lib → types/lib}/request.js +1 -1
  19. package/dist/{lib → types/lib}/utils.d.ts +1 -7
  20. package/dist/types/lib/utils.js +78 -0
  21. package/dist/types/middleware/apiResultFormatter.d.ts +7 -0
  22. package/dist/types/middleware/apiResultFormatter.js +83 -0
  23. package/dist/types/middleware/detect.middleware.d.ts +4 -0
  24. package/dist/types/middleware/detect.middleware.js +58 -0
  25. package/dist/types/middleware/requestInit.d.ts +7 -0
  26. package/dist/types/middleware/requestInit.js +139 -0
  27. package/dist/types/service/session.service.d.ts +9 -0
  28. package/dist/types/service/session.service.js +56 -0
  29. package/dist/types/service/tencent.service.d.ts +37 -0
  30. package/dist/types/service/tencent.service.js +132 -0
  31. package/dist/types/{base.controller.js → types/base.controller.js} +1 -4
  32. package/dist/types/{base.model.service.d.ts → types/base.model.service.d.ts} +1 -9
  33. package/dist/types/types/base.model.service.js +76 -0
  34. package/dist/types/{base.service.d.ts → types/base.service.d.ts} +1 -10
  35. package/dist/types/types/base.service.js +70 -0
  36. package/dist/types/{session.service.interface.d.ts → types/session.service.interface.d.ts} +1 -15
  37. package/dist/types/{session.service.interface.js → types/session.service.interface.js} +1 -5
  38. package/package.json +4 -1
  39. package/dist/config/config.default.d.ts +0 -3
  40. package/dist/config/config.default.js +0 -160
  41. package/dist/config/env.js +0 -19
  42. package/dist/guard/api.js +0 -88
  43. package/dist/guard/auth.js +0 -202
  44. package/dist/lib/decorator.d.ts +0 -36
  45. package/dist/lib/decorator.js +0 -79
  46. package/dist/lib/jwt.d.ts +0 -135
  47. package/dist/lib/jwt.js +0 -38
  48. package/dist/lib/utils.js +0 -89
  49. package/dist/middleware/apiResultFormatter.d.ts +0 -8
  50. package/dist/middleware/apiResultFormatter.js +0 -84
  51. package/dist/middleware/detect.middleware.d.ts +0 -5
  52. package/dist/middleware/detect.middleware.js +0 -61
  53. package/dist/middleware/requestInit.d.ts +0 -8
  54. package/dist/middleware/requestInit.js +0 -100
  55. package/dist/service/session.service.d.ts +0 -33
  56. package/dist/service/session.service.js +0 -81
  57. package/dist/service/tencent.service.d.ts +0 -45
  58. package/dist/service/tencent.service.js +0 -105
  59. package/dist/types/base.model.service.js +0 -86
  60. package/dist/types/base.service.js +0 -86
  61. /package/dist/{config → types/config}/env.d.ts +0 -0
  62. /package/dist/{configuration.d.ts → types/configuration.d.ts} +0 -0
  63. /package/dist/{filter → types/filter}/default.filter.d.ts +0 -0
  64. /package/dist/{filter → types/filter}/notfound.filter.d.ts +0 -0
  65. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  66. /package/dist/types/{base.controller.d.ts → types/base.controller.d.ts} +0 -0
@@ -0,0 +1,70 @@
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
+ 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.BaseService = void 0;
16
+ const core_1 = require("@midwayjs/core");
17
+ const api_1 = __importDefault(require("@fefeding/common/dist/utils/api"));
18
+ const request_1 = require("../lib/request");
19
+ class BaseService {
20
+ async checkManager(account = this.ctx.currentSession?.account?.account) {
21
+ return account && this.baseServiceOption.manager?.includes(account);
22
+ }
23
+ async requestBaseApi(req, option) {
24
+ const res = await this.requestBaseServer(req, option);
25
+ return res?.data || null;
26
+ }
27
+ async requestBaseServer(req, option) {
28
+ option = {
29
+ method: 'POST',
30
+ baseURL: this.baseServiceOption.url,
31
+ accessKey: this.apiOption?.key || '',
32
+ ...option,
33
+ };
34
+ const headers = option.headers || {};
35
+ if (option.accessKey) {
36
+ const thisToken = api_1.default.createApiToken(option.accessKey);
37
+ headers['x-api-token'] = thisToken.sign;
38
+ headers['x-api-timestamp'] = thisToken.timestamp;
39
+ }
40
+ headers['x-request-id'] = this.ctx.request_id;
41
+ headers['x-auth-token'] = this.ctx.currentSession?.id || '';
42
+ const ip = this.ctx?.detect?.CLIENTIP ||
43
+ (this.ctx.request?.header?.['x-client-ip'] ||
44
+ this.ctx.request?.header?.['x-forwarded-for'] ||
45
+ this.ctx.request?.ip ||
46
+ '').toString();
47
+ headers['x-client-ip'] = ip;
48
+ option.headers = headers;
49
+ const res = await (0, request_1.requestServer)(req, option);
50
+ return res;
51
+ }
52
+ }
53
+ exports.BaseService = BaseService;
54
+ __decorate([
55
+ (0, core_1.App)(),
56
+ __metadata("design:type", Object)
57
+ ], BaseService.prototype, "app", void 0);
58
+ __decorate([
59
+ (0, core_1.Inject)(),
60
+ __metadata("design:type", Object)
61
+ ], BaseService.prototype, "ctx", void 0);
62
+ __decorate([
63
+ (0, core_1.Config)('baseService'),
64
+ __metadata("design:type", Object)
65
+ ], BaseService.prototype, "baseServiceOption", void 0);
66
+ __decorate([
67
+ (0, core_1.Config)('apiOption'),
68
+ __metadata("design:type", Object)
69
+ ], BaseService.prototype, "apiOption", void 0);
70
+ //# sourceMappingURL=base.service.js.map
@@ -10,21 +10,7 @@ export declare abstract class ISessionService extends BaseService {
10
10
  secretKey: string;
11
11
  serviceKey: ObjectIdentifier;
12
12
  };
13
- /**
14
- * 根据ID获取session
15
- * 并判断session是否在有效期
16
- * @param id token唯一
17
- */
18
- abstract getLoginSession(id: string): Promise<Session>;
19
- /**
20
- * 下线
21
- * @param id 需要下线的id或者session
22
- */
13
+ abstract getLoginSession(id: string): Promise<Session | null>;
23
14
  abstract logout(id: string): Promise<any>;
24
- /**
25
- * 用临时码登陆
26
- * @param code 登陆临时码
27
- * @returns
28
- */
29
15
  abstract loginByCode(code: string): Promise<Session>;
30
16
  }
@@ -10,15 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ISessionService = exports.DEFAULT_SESSION_SERVICE_KEY = void 0;
13
- // @ts-ignore
14
13
  const core_1 = require("@midwayjs/core");
15
14
  const cache_manager_1 = require("@midwayjs/cache-manager");
16
15
  const base_service_1 = require("./base.service");
17
- // 定义服务标识符常量
18
16
  exports.DEFAULT_SESSION_SERVICE_KEY = 'default:session:service';
19
17
  class ISessionService extends base_service_1.BaseService {
20
- sessionCache;
21
- sessionOption;
22
18
  }
23
19
  exports.ISessionService = ISessionService;
24
20
  __decorate([
@@ -29,4 +25,4 @@ __decorate([
29
25
  (0, core_1.Config)('session'),
30
26
  __metadata("design:type", Object)
31
27
  ], ISessionService.prototype, "sessionOption", void 0);
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zZXNzaW9uLnNlcnZpY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7QUFDYix5Q0FBbUc7QUFDbkcsMkRBQXNFO0FBQ3RFLGlEQUE2QztBQUc3QyxZQUFZO0FBQ0MsUUFBQSwyQkFBMkIsR0FBRyx5QkFBNkMsQ0FBQztBQUV6RixNQUFzQixlQUFnQixTQUFRLDBCQUFXO0lBR3JELFlBQVksQ0FBYztJQUcxQixhQUFhLENBSVo7Q0FxQko7QUEvQkQsMENBK0JDO0FBNUJHO0lBREMsSUFBQSxtQkFBWSxFQUFDLDhCQUFjLEVBQUUsU0FBUyxDQUFDOztxREFDZDtBQUcxQjtJQURDLElBQUEsYUFBTSxFQUFDLFNBQVMsQ0FBQzs7c0RBS2pCIn0=
28
+ //# sourceMappingURL=session.service.interface.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cicctencent/midwayjs-base",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "description": "基础框架,服务",
5
5
  "main": "dist/index.js",
6
6
  "typings": "index.d.ts",
@@ -26,8 +26,11 @@
26
26
  "devDependencies": {
27
27
  "@jest/globals": "^30.0.5",
28
28
  "@midwayjs/mock": "^3.20.11",
29
+ "@types/ip": "^1.1.3",
29
30
  "@types/jest": "^30.0.0",
31
+ "@types/jsonwebtoken": "^9.0.10",
30
32
  "@types/koa": "^3.0.0",
33
+ "@types/lodash": "^4.17.23",
31
34
  "@types/lodash-es": "^4.17.12",
32
35
  "@types/node": "^24.3.0",
33
36
  "cross-env": "^10.0.0",
@@ -1,3 +0,0 @@
1
- import type { MidwayConfig, MidwayAppInfo } from '@midwayjs/core';
2
- declare const _default: (appInfo: MidwayAppInfo) => MidwayConfig;
3
- export default _default;
@@ -1,160 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const path = require("path");
4
- const fs = require("fs");
5
- exports.default = (appInfo) => {
6
- appInfo.appId = Number(process.env.APP_ID) || 0;
7
- const appRoot = appInfo.appDir || appInfo.root;
8
- appInfo.dist = path.join(appRoot, 'dist');
9
- appInfo.webDist = path.join(appInfo.dist, 'web');
10
- appInfo.webPublic = path.join(appInfo.webDist, 'public');
11
- if (!fs.existsSync(appInfo.webPublic)) {
12
- fs.mkdirSync(appInfo.webPublic, {
13
- recursive: true
14
- });
15
- }
16
- const config = {
17
- // use for cookie sign key, should change to your own and keep security
18
- keys: appInfo.name + '_1641910879296_0612',
19
- cookies: {
20
- // 确保不设置secret,或者设置为空字符串
21
- secret: '', // 如果为空字符串,则关闭加密,但仍然可以解密已加密的cookies
22
- // ...
23
- },
24
- view: {
25
- //默认view目录
26
- defaultViewEngine: 'nunjucks',
27
- //默认view目录,本地开发目录必须在web下的,正式环境则是根目录下的view,因为web目录会被删
28
- rootDir: {
29
- default: path.join(appInfo.webDist, 'view/'),
30
- },
31
- mapping: {
32
- '.html': 'nunjucks',
33
- },
34
- },
35
- // 上传配置
36
- upload: {
37
- // 文件模式
38
- mode: 'file',
39
- // 上传目录
40
- fileSize: '10mb',
41
- whitelist: ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx'],
42
- },
43
- // 静态文件服务
44
- staticFile: {
45
- dirs: {
46
- default: {
47
- // 默认public目录
48
- dir: appInfo.webPublic,
49
- },
50
- },
51
- },
52
- /**
53
- * api相关配置
54
- */
55
- apiOption: {
56
- // 接口请求校验key
57
- key: process.env.API_KEY || '2024@fefeding#',
58
- reg: /^\/([^/]+\/)?api\//i,
59
- ignore: [
60
- '/',
61
- /^\/([^/]+\/)?api\/cos\/get/i
62
- ]
63
- },
64
- // ip白名单
65
- ipOption: {
66
- whiteList: [
67
- '127.0.0.1',
68
- '::1',
69
- '0.0.0.0',
70
- '::',
71
- 'localhost',
72
- ...(process.env.IP_WHITE_LIST?.split(',') || [])
73
- ],
74
- },
75
- // 查看系统信息
76
- info: {
77
- infoPath: '/_sys_info',
78
- },
79
- axios: {
80
- default: {
81
- // 所有实例复用的配置
82
- },
83
- clients: {
84
- // 默认实例的配置
85
- default: {
86
- // `headers` are custom headers to be sent
87
- headers: {
88
- 'X-Requested-With': 'XMLHttpRequest',
89
- },
90
- timeout: 1000, // default is `0` (no timeout)
91
- // `withCredentials` indicates whether or not cross-site Access-Control requests
92
- // should be made using credentials
93
- withCredentials: false, // default
94
- },
95
- },
96
- },
97
- // 基础服务
98
- baseService: {
99
- manager: ['admin'], // 管理员帐号
100
- appId: appInfo.appId,
101
- url: process.env.BASE_SERVER_URL || ''
102
- },
103
- session: {
104
- // session 过期设置
105
- timeout: Number(process.env.SESSION_TIMEOUT) || 20 * 60 * 1000,
106
- secretKey: 'fjjiowhb@#$^111)*&',
107
- //serviceKey: 'session:service',
108
- },
109
- // 登陆态校验配置
110
- auth: {
111
- // 忽略登陆态校验
112
- ignores: [
113
- /\/api\/test\//i,
114
- "/api/test/action"
115
- ]
116
- },
117
- // 登陆相关配置
118
- sso: {
119
- baseUrl: process.env.SSO_URL || '',
120
- appId: appInfo.appId,
121
- },
122
- tencentCredential: {
123
- secretId: process.env.TENCENT_CREDENTIAL_SECRETID || '',
124
- secretKey: process.env.TENCENT_CREDENTIAL_SECRETKEY || '',
125
- },
126
- busboy: {
127
- mode: 'file',
128
- },
129
- bodyParser: {
130
- formLimit: '30mb',
131
- jsonLimit: '30mb',
132
- },
133
- cacheManager: {
134
- clients: {
135
- default: {
136
- store: 'memory',
137
- options: {
138
- max: 10000, // 代表缓存 key 的最大个数
139
- ttl: 600000, // 缓存的过期时间,单位毫秒。
140
- },
141
- },
142
- },
143
- session: {
144
- store: 'memory',
145
- options: {
146
- max: 10000, // 代表缓存 key 的最大个数
147
- ttl: 600000, // 缓存的过期时间,单位毫秒。
148
- },
149
- },
150
- },
151
- logger: {
152
- // 日志配置
153
- level: process.env.LOG_LEVEL || 'info',
154
- consoleLevel: process.env.LOG_LEVEL || 'info',
155
- remoteUrl: process.env.REMOTE_LOGGER_URL || '',
156
- }
157
- };
158
- return config;
159
- };
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNkJBQTZCO0FBQzdCLHlCQUF5QjtBQUV6QixrQkFBZSxDQUFDLE9BQXNCLEVBQUUsRUFBRTtJQUN0QyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDL0MsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNqRCxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUV6RCxJQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDNUIsU0FBUyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHO1FBQ1gsdUVBQXVFO1FBQ3ZFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLHFCQUFxQjtRQUMxQyxPQUFPLEVBQUU7WUFDTCx3QkFBd0I7WUFDeEIsTUFBTSxFQUFFLEVBQUUsRUFBRSxtQ0FBbUM7WUFDL0MsTUFBTTtTQUNUO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsVUFBVTtZ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
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadEnv = loadEnv;
4
- const dotenv = require("dotenv");
5
- const path = require("path");
6
- const fs = require("fs");
7
- function loadEnv(envPath) {
8
- envPath = envPath || path.join(process.cwd(), '.env');
9
- console.log('env path', envPath);
10
- if (fs.existsSync(envPath)) {
11
- const env = dotenv.config({
12
- path: envPath,
13
- encoding: 'utf-8'
14
- });
15
- console.log(env);
16
- }
17
- return process.env;
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSwwQkFZQztBQWpCRCxpQ0FBaUM7QUFDakMsNkJBQTZCO0FBQzdCLHlCQUF5QjtBQUd6QixTQUFnQixPQUFPLENBQUMsT0FBZ0I7SUFDcEMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVqQyxJQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3RCLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLE9BQU87U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQ3ZCLENBQUMifQ==
package/dist/guard/api.js DELETED
@@ -1,88 +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.ApiGuard = void 0;
13
- // @ts-ignore
14
- const core_1 = require("@midwayjs/core");
15
- const decorator_1 = require("../lib/decorator");
16
- const api_1 = require("@fefeding/common/dist/utils/api");
17
- /**
18
- * 对于需要token的接口,从query或body或cookie中取token,是否跟本服务的一致
19
- */
20
- let ApiGuard = class ApiGuard {
21
- // 登陆态验证配置
22
- apiOption;
23
- ipOption;
24
- async canActivate(context, supplierClz, methodName) {
25
- // 检查是否有IP白名单限制
26
- const needIP = (0, decorator_1.getCheckIP)(supplierClz, methodName);
27
- if (needIP) {
28
- //console.log('check ip ', needIP);
29
- this.checkIPInWhiteList(context);
30
- }
31
- // 获取是否需要检查token
32
- const needToken = (0, decorator_1.getApiToken)(supplierClz, methodName);
33
- if (needToken) {
34
- await this.checkApiToken(context);
35
- }
36
- return true;
37
- }
38
- // 校验是否有带api token
39
- async checkApiToken(context) {
40
- const body = (context.request.body || {});
41
- const reqToken = context.URL.searchParams.get('api_token') ||
42
- context.request.header['x-api-token'] ||
43
- body.api_token ||
44
- context.cookies.get('api_token');
45
- const timestamp = Number(context.URL.searchParams.get('timestamp') ||
46
- context.request.header['x-api-timestamp'] ||
47
- body.timestamp ||
48
- context.cookies.get('timestamp'));
49
- if (!reqToken || !timestamp) {
50
- context.logger.error(`token为空,非法请求, token: ${reqToken}, timestamp: ${timestamp}`);
51
- throw Error('token为空,非法请求');
52
- }
53
- //const time = new Date(timestamp);
54
- console.log('token time', reqToken, timestamp);
55
- // 如果超过一定时间,则失效
56
- if (timestamp < Date.now() - 5 * 60 * 1000) {
57
- throw Error('timestamp已超过有效时间');
58
- }
59
- const thisToken = api_1.default.createApiToken(this.apiOption.key, timestamp);
60
- if (reqToken !== thisToken.sign) {
61
- context.logger.error(`输入token:${reqToken} 本地: ${thisToken.sign} 不一致`);
62
- throw Error('token输入错误');
63
- }
64
- }
65
- // 检查IP白名单
66
- checkIPInWhiteList(context) {
67
- const requestIp = context.detect?.REQUESTIP;
68
- if (this.ipOption?.whiteList && !this.ipOption.whiteList.includes('*')) {
69
- if (!this.ipOption.whiteList.includes(requestIp)) {
70
- context.logger.error(`IP:${requestIp} 不在白名单内`);
71
- throw Error(`IP:${requestIp} 不在白名单内`);
72
- }
73
- }
74
- }
75
- };
76
- exports.ApiGuard = ApiGuard;
77
- __decorate([
78
- (0, core_1.Config)('apiOption'),
79
- __metadata("design:type", Object)
80
- ], ApiGuard.prototype, "apiOption", void 0);
81
- __decorate([
82
- (0, core_1.Config)('ipOption'),
83
- __metadata("design:type", Object)
84
- ], ApiGuard.prototype, "ipOption", void 0);
85
- exports.ApiGuard = ApiGuard = __decorate([
86
- (0, core_1.Guard)()
87
- ], ApiGuard);
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2d1YXJkL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxhQUFhO0FBQ2IseUNBQXVEO0FBRXZELGdEQUEyRDtBQUMzRCx5REFBa0Q7QUFFbEQ7O0dBRUc7QUFFSSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFDakIsVUFBVTtJQUVWLFNBQVMsQ0FFUDtJQUdGLFFBQVEsQ0FFTjtJQUVGLEtBQUssQ0FBQyxXQUFXLENBQ2IsT0FBZ0IsRUFDaEIsV0FBZ0IsRUFDaEIsVUFBa0I7UUFFbEIsZUFBZTtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQVUsRUFBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBRyxNQUFNLEVBQUUsQ0FBQztZQUNSLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELGdCQUFnQjtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFXLEVBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXZELElBQUksU0FBUyxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFnQjtRQUNoQyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBUSxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDekMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTO1lBQ2QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTO1lBQ2QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3ZDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2hCLHdCQUF3QixRQUFRLGdCQUFnQixTQUFTLEVBQUUsQ0FDOUQsQ0FBQztZQUNGLE1BQU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLGVBQWU7UUFDZixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxhQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLElBQUksUUFBUSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDaEIsV0FBVyxRQUFRLFNBQVMsU0FBUyxDQUFDLElBQUksTUFBTSxDQUNuRCxDQUFDO1lBQ0YsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO0lBQ1Ysa0JBQWtCLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxTQUFTLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLEtBQUssQ0FBQyxNQUFNLFNBQVMsU0FBUyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQWhGWSw0QkFBUTtBQUdqQjtJQURDLElBQUEsYUFBTSxFQUFDLFdBQVcsQ0FBQzs7MkNBR2xCO0FBR0Y7SUFEQyxJQUFBLGFBQU0sRUFBQyxVQUFVLENBQUM7OzBDQUdqQjttQkFWTyxRQUFRO0lBRHBCLElBQUEsWUFBSyxHQUFFO0dBQ0ssUUFBUSxDQWdGcEIifQ==
@@ -1,202 +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.AuthGuard = void 0;
13
- // @ts-ignore
14
- const core_1 = require("@midwayjs/core");
15
- const decorator_1 = require("../lib/decorator");
16
- const utils_1 = require("../lib/utils");
17
- const session_service_interface_1 = require("../types/session.service.interface");
18
- /**
19
- * 校验请求的登陆态
20
- */
21
- let AuthGuard = class AuthGuard {
22
- app;
23
- sessionService;
24
- ssoOption;
25
- authOption;
26
- apiOption;
27
- koa;
28
- async init() {
29
- const appContext = this.app.getApplicationContext();
30
- console.log('init auth guard');
31
- // 如果用户自定义了session service的实现,则使用用户自定义的
32
- this.sessionService = await appContext.getAsync(session_service_interface_1.DEFAULT_SESSION_SERVICE_KEY);
33
- if (this.sessionService?.sessionOption?.serviceKey && this.sessionService?.sessionOption.serviceKey !== session_service_interface_1.DEFAULT_SESSION_SERVICE_KEY) {
34
- //尝试获取用户自定义的实现
35
- const sessionServiceObj = await appContext.getAsync(this.sessionService.sessionOption.serviceKey);
36
- if (sessionServiceObj) {
37
- console.log('use custom session service for auth guard', this.sessionService.sessionOption.serviceKey);
38
- this.sessionService = sessionServiceObj;
39
- }
40
- }
41
- }
42
- // 检查是否需要验证登陆态
43
- checkNeedAuth(context, supplierClz, methodName) {
44
- // 如果有配置忽略验证,则直接返回false
45
- if (this.authOption?.ignores) {
46
- if (this.authOption.ignores === '*' || this.authOption.ignores === context.path) {
47
- return false;
48
- }
49
- if (Array.isArray(this.authOption.ignores)) {
50
- if (this.authOption.ignores.includes('*'))
51
- return false;
52
- for (const t of this.authOption.ignores) {
53
- if (t instanceof RegExp) {
54
- if (t.test(context.path))
55
- return false;
56
- }
57
- else if (typeof t === 'string') {
58
- if (t === context.path)
59
- return false;
60
- }
61
- }
62
- }
63
- }
64
- // 获取是否需要检查登陆态
65
- const needAuth = (0, decorator_1.getCheckLogin)(supplierClz, methodName);
66
- return needAuth;
67
- }
68
- async canActivate(context, supplierClz, methodName) {
69
- // 获取是否需要检查登陆态
70
- const needAuth = this.checkNeedAuth(context, supplierClz, methodName);
71
- const token = (0, utils_1.getAuthToken)(context);
72
- if (token)
73
- context.auth_token = token;
74
- const ret = await this.checkAuth(context, token, needAuth);
75
- return ret;
76
- }
77
- // 校验是否有带api token
78
- async checkAuth(context, token, needAuth) {
79
- this.sessionService.ctx = context;
80
- const authRet = 50001;
81
- //console.log('check auth', token, needAuth);
82
- let errRes = null;
83
- try {
84
- let session = null;
85
- // 如果是从登陆回来,则验证监时码
86
- const authCode = context.URL.searchParams.get('auth_code');
87
- if (authCode) {
88
- session = await this.sessionService.loginByCode(authCode);
89
- if (session) {
90
- // 登陆写入cookie
91
- (0, utils_1.setAuthToken)(context, session.id);
92
- }
93
- context.URL.searchParams.delete('auth_code'); // 移除auth_code参数
94
- context.URL.hostname = context.detect?.HOSTNAME || context.hostname;
95
- const url = context.URL.toString();
96
- context.redirect(url);
97
- return true;
98
- }
99
- if (token && !errRes && !session) {
100
- // jwt签名
101
- if (token.startsWith('Bearer ')) {
102
- session = (0, utils_1.decodeJWT)(token.replace('Bearer ', ''), this.sessionService?.sessionOption?.secretKey || 'fefeding');
103
- }
104
- else {
105
- session = await this.sessionService.getLoginSession(token);
106
- }
107
- if (!session || !session.id) {
108
- (0, utils_1.setAuthToken)(context, '');
109
- //context.status = 403;
110
- errRes = {
111
- ret: authRet,
112
- msg: 'token不存在或已过期',
113
- };
114
- }
115
- }
116
- if (!session) {
117
- errRes = {
118
- ret: authRet,
119
- msg: '需要登陆态',
120
- };
121
- }
122
- // 登陆态挂载到当前上下文
123
- context.currentSession = session;
124
- // @ts-ignore 登陆态挂载到logger
125
- if (session && context.logger?.setOptions) {
126
- // @ts-ignore
127
- context.logger.setOptions({
128
- loginId: session?.loginId || '',
129
- userId: (session?.userId || '').toString(),
130
- });
131
- }
132
- }
133
- catch (e) {
134
- errRes = {
135
- ret: e.ret || authRet,
136
- msg: e.msg || e.message || 'auth error',
137
- };
138
- console.error(e);
139
- }
140
- if (errRes && needAuth) {
141
- this.authError(context, errRes);
142
- }
143
- return true;
144
- }
145
- // 异常处理
146
- authError(context, error) {
147
- const isApi = this.apiOption?.reg?.test(context.path);
148
- if (isApi) {
149
- context.status = 200;
150
- context.res.write('', 'utf8');
151
- throw error;
152
- }
153
- else {
154
- const loginUrl = `${this.ssoOption?.baseUrl || this.koa?.globalPrefix || ''}/login`;
155
- // 如果本来就以/login结尾,则直跳
156
- if (!/\/login\/?(\?|$|#)/.test(context.URL.pathname)) {
157
- const URL = context.URL;
158
- if (context.detect?.HOSTNAME && URL.hostname !== context.detect?.HOSTNAME)
159
- URL.hostname = context.detect.HOSTNAME;
160
- URL.searchParams.delete('jv_auth_code');
161
- URL.searchParams.delete('token');
162
- URL.searchParams.delete('auth_code'); // 移除auth_code参数
163
- const redirectUrl = context.URL.toString();
164
- context.redirect(`${loginUrl}?url=${encodeURIComponent(redirectUrl)}&appid=${this.ssoOption?.appId || 0}`);
165
- }
166
- else {
167
- context.redirect(loginUrl);
168
- }
169
- }
170
- }
171
- };
172
- exports.AuthGuard = AuthGuard;
173
- __decorate([
174
- (0, core_1.App)(),
175
- __metadata("design:type", Object)
176
- ], AuthGuard.prototype, "app", void 0);
177
- __decorate([
178
- (0, core_1.Config)('sso'),
179
- __metadata("design:type", Object)
180
- ], AuthGuard.prototype, "ssoOption", void 0);
181
- __decorate([
182
- (0, core_1.Config)('auth'),
183
- __metadata("design:type", Object)
184
- ], AuthGuard.prototype, "authOption", void 0);
185
- __decorate([
186
- (0, core_1.Config)('apiOption'),
187
- __metadata("design:type", Object)
188
- ], AuthGuard.prototype, "apiOption", void 0);
189
- __decorate([
190
- (0, core_1.Config)('koa'),
191
- __metadata("design:type", Object)
192
- ], AuthGuard.prototype, "koa", void 0);
193
- __decorate([
194
- (0, core_1.Init)(),
195
- __metadata("design:type", Function),
196
- __metadata("design:paramtypes", []),
197
- __metadata("design:returntype", Promise)
198
- ], AuthGuard.prototype, "init", null);
199
- exports.AuthGuard = AuthGuard = __decorate([
200
- (0, core_1.Guard)()
201
- ], AuthGuard);
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ndWFyZC9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7QUFDYix5Q0FBMEU7QUFFMUUsZ0RBQWlEO0FBQ2pELHdDQUFxRTtBQUNyRSxrRkFBa0c7QUFFbEc7O0dBRUc7QUFFSSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFUixHQUFHLENBQWM7SUFFM0IsY0FBYyxDQUFrQjtJQUdoQyxTQUFTLENBQU07SUFHZixVQUFVLENBRVI7SUFHRixTQUFTLENBQU07SUFHZixHQUFHLENBQU07SUFHSCxBQUFOLEtBQUssQ0FBQyxJQUFJO1FBQ04sTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQix1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLFVBQVUsQ0FBQyxRQUFRLENBQWtCLHVEQUEyQixDQUFDLENBQUM7UUFDOUYsSUFBRyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsVUFBVSxLQUFLLHVEQUEyQixFQUFFLENBQUM7WUFDakksY0FBYztZQUNkLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxVQUFVLENBQUMsUUFBUSxDQUFrQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuSCxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3ZHLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUM7WUFDNUMsQ0FBQztRQUNM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