yingzios-platform-backend-shared 1.0.1
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 +51 -0
- package/dist/apollo/apollo.config.d.ts +26 -0
- package/dist/apollo/apollo.config.d.ts.map +1 -0
- package/dist/apollo/apollo.config.js +2 -0
- package/dist/apollo/apollo.module.d.ts +13 -0
- package/dist/apollo/apollo.module.d.ts.map +1 -0
- package/dist/apollo/apollo.module.js +61 -0
- package/dist/apollo/apollo.service.d.ts +17 -0
- package/dist/apollo/apollo.service.d.ts.map +1 -0
- package/dist/apollo/apollo.service.js +35 -0
- package/dist/apollo/index.d.ts +5 -0
- package/dist/apollo/index.d.ts.map +1 -0
- package/dist/apollo/index.js +17 -0
- package/dist/cache/cache.config.d.ts +28 -0
- package/dist/cache/cache.config.d.ts.map +1 -0
- package/dist/cache/cache.config.js +2 -0
- package/dist/cache/cache.module.d.ts +39 -0
- package/dist/cache/cache.module.d.ts.map +1 -0
- package/dist/cache/cache.module.js +75 -0
- package/dist/cache/cache.service.d.ts +49 -0
- package/dist/cache/cache.service.d.ts.map +1 -0
- package/dist/cache/cache.service.js +208 -0
- package/dist/cache/index.d.ts +4 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +19 -0
- package/dist/env/env-loader.d.ts +50 -0
- package/dist/env/env-loader.d.ts.map +1 -0
- package/dist/env/env-loader.js +159 -0
- package/dist/env/env.module.d.ts +11 -0
- package/dist/env/env.module.d.ts.map +1 -0
- package/dist/env/env.module.js +47 -0
- package/dist/env/env.service.d.ts +31 -0
- package/dist/env/env.service.d.ts.map +1 -0
- package/dist/env/env.service.js +195 -0
- package/dist/env/index.d.ts +4 -0
- package/dist/env/index.d.ts.map +1 -0
- package/dist/env/index.js +19 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/internal-auth/decorators/caller.decorator.d.ts +29 -0
- package/dist/internal-auth/decorators/caller.decorator.d.ts.map +1 -0
- package/dist/internal-auth/decorators/caller.decorator.js +37 -0
- package/dist/internal-auth/decorators/index.d.ts +3 -0
- package/dist/internal-auth/decorators/index.d.ts.map +1 -0
- package/dist/internal-auth/decorators/index.js +18 -0
- package/dist/internal-auth/decorators/use-either-guard.decorator.d.ts +31 -0
- package/dist/internal-auth/decorators/use-either-guard.decorator.d.ts.map +1 -0
- package/dist/internal-auth/decorators/use-either-guard.decorator.js +79 -0
- package/dist/internal-auth/guards/index.d.ts +2 -0
- package/dist/internal-auth/guards/index.d.ts.map +1 -0
- package/dist/internal-auth/guards/index.js +17 -0
- package/dist/internal-auth/guards/service-key.guard.d.ts +36 -0
- package/dist/internal-auth/guards/service-key.guard.d.ts.map +1 -0
- package/dist/internal-auth/guards/service-key.guard.js +86 -0
- package/dist/internal-auth/index.d.ts +43 -0
- package/dist/internal-auth/index.d.ts.map +1 -0
- package/dist/internal-auth/index.js +62 -0
- package/dist/internal-auth/internal-auth.module.d.ts +62 -0
- package/dist/internal-auth/internal-auth.module.d.ts.map +1 -0
- package/dist/internal-auth/internal-auth.module.js +118 -0
- package/dist/internal-auth/internal-http.service.d.ts +72 -0
- package/dist/internal-auth/internal-http.service.d.ts.map +1 -0
- package/dist/internal-auth/internal-http.service.js +119 -0
- package/dist/jwt/auto-fill-user.pipe.d.ts +43 -0
- package/dist/jwt/auto-fill-user.pipe.d.ts.map +1 -0
- package/dist/jwt/auto-fill-user.pipe.js +166 -0
- package/dist/jwt/decorators/current-user.decorator.d.ts +37 -0
- package/dist/jwt/decorators/current-user.decorator.d.ts.map +1 -0
- package/dist/jwt/decorators/current-user.decorator.js +29 -0
- package/dist/jwt/decorators/public.decorator.d.ts +8 -0
- package/dist/jwt/decorators/public.decorator.d.ts.map +1 -0
- package/dist/jwt/decorators/public.decorator.js +12 -0
- package/dist/jwt/guards/jwt-auth.guard.d.ts +20 -0
- package/dist/jwt/guards/jwt-auth.guard.d.ts.map +1 -0
- package/dist/jwt/guards/jwt-auth.guard.js +88 -0
- package/dist/jwt/index.d.ts +8 -0
- package/dist/jwt/index.d.ts.map +1 -0
- package/dist/jwt/index.js +26 -0
- package/dist/jwt/jwt-config.service.d.ts +10 -0
- package/dist/jwt/jwt-config.service.d.ts.map +1 -0
- package/dist/jwt/jwt-config.service.js +40 -0
- package/dist/jwt/jwt.config.d.ts +15 -0
- package/dist/jwt/jwt.config.d.ts.map +1 -0
- package/dist/jwt/jwt.config.js +2 -0
- package/dist/jwt/jwt.module.d.ts +19 -0
- package/dist/jwt/jwt.module.d.ts.map +1 -0
- package/dist/jwt/jwt.module.js +100 -0
- package/dist/jwt/jwt.service.d.ts +31 -0
- package/dist/jwt/jwt.service.d.ts.map +1 -0
- package/dist/jwt/jwt.service.js +71 -0
- package/dist/jwt/strategies/jwt.strategy.d.ts +25 -0
- package/dist/jwt/strategies/jwt.strategy.d.ts.map +1 -0
- package/dist/jwt/strategies/jwt.strategy.js +150 -0
- package/dist/jwt/user-aware-axios.service.d.ts +17 -0
- package/dist/jwt/user-aware-axios.service.d.ts.map +1 -0
- package/dist/jwt/user-aware-axios.service.js +105 -0
- package/dist/jwt/utils/jwt.utils.d.ts +24 -0
- package/dist/jwt/utils/jwt.utils.d.ts.map +1 -0
- package/dist/jwt/utils/jwt.utils.js +40 -0
- package/dist/logger/index.d.ts +4 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +19 -0
- package/dist/logger/logger.config.d.ts +41 -0
- package/dist/logger/logger.config.d.ts.map +1 -0
- package/dist/logger/logger.config.js +13 -0
- package/dist/logger/logger.module.d.ts +17 -0
- package/dist/logger/logger.module.d.ts.map +1 -0
- package/dist/logger/logger.module.js +49 -0
- package/dist/logger/logger.service.d.ts +62 -0
- package/dist/logger/logger.service.d.ts.map +1 -0
- package/dist/logger/logger.service.js +124 -0
- package/dist/logger/winston.config.d.ts +43 -0
- package/dist/logger/winston.config.d.ts.map +1 -0
- package/dist/logger/winston.config.js +183 -0
- package/dist/nacos/index.d.ts +4 -0
- package/dist/nacos/index.d.ts.map +1 -0
- package/dist/nacos/index.js +19 -0
- package/dist/nacos/nacos.config.d.ts +10 -0
- package/dist/nacos/nacos.config.d.ts.map +1 -0
- package/dist/nacos/nacos.config.js +2 -0
- package/dist/nacos/nacos.module.d.ts +9 -0
- package/dist/nacos/nacos.module.d.ts.map +1 -0
- package/dist/nacos/nacos.module.js +42 -0
- package/dist/nacos/nacos.service.d.ts +43 -0
- package/dist/nacos/nacos.service.d.ts.map +1 -0
- package/dist/nacos/nacos.service.js +212 -0
- package/dist/nacos/utils.d.ts +10 -0
- package/dist/nacos/utils.d.ts.map +1 -0
- package/dist/nacos/utils.js +65 -0
- package/dist/restful/current-request.util.d.ts +16 -0
- package/dist/restful/current-request.util.d.ts.map +1 -0
- package/dist/restful/current-request.util.js +34 -0
- package/dist/restful/http-exception.filter.d.ts +24 -0
- package/dist/restful/http-exception.filter.d.ts.map +1 -0
- package/dist/restful/http-exception.filter.js +126 -0
- package/dist/restful/index.d.ts +8 -0
- package/dist/restful/index.d.ts.map +1 -0
- package/dist/restful/index.js +23 -0
- package/dist/restful/request-context.middleware.d.ts +6 -0
- package/dist/restful/request-context.middleware.d.ts.map +1 -0
- package/dist/restful/request-context.middleware.js +25 -0
- package/dist/restful/response-codes.d.ts +104 -0
- package/dist/restful/response-codes.d.ts.map +1 -0
- package/dist/restful/response-codes.js +163 -0
- package/dist/restful/response.dto.d.ts +52 -0
- package/dist/restful/response.dto.d.ts.map +1 -0
- package/dist/restful/response.dto.js +146 -0
- package/dist/restful/response.interceptor.d.ts +17 -0
- package/dist/restful/response.interceptor.d.ts.map +1 -0
- package/dist/restful/response.interceptor.js +86 -0
- package/dist/restful/restful.module.d.ts +5 -0
- package/dist/restful/restful.module.d.ts.map +1 -0
- package/dist/restful/restful.module.js +26 -0
- package/dist/sequelize/index.d.ts +4 -0
- package/dist/sequelize/index.d.ts.map +1 -0
- package/dist/sequelize/index.js +19 -0
- package/dist/sequelize/sequelize.config.d.ts +24 -0
- package/dist/sequelize/sequelize.config.d.ts.map +1 -0
- package/dist/sequelize/sequelize.config.js +5 -0
- package/dist/sequelize/sequelize.module.d.ts +28 -0
- package/dist/sequelize/sequelize.module.d.ts.map +1 -0
- package/dist/sequelize/sequelize.module.js +50 -0
- package/dist/sequelize/sequelize.provider.d.ts +7 -0
- package/dist/sequelize/sequelize.provider.d.ts.map +1 -0
- package/dist/sequelize/sequelize.provider.js +154 -0
- package/dist/snowflake/index.d.ts +4 -0
- package/dist/snowflake/index.d.ts.map +1 -0
- package/dist/snowflake/index.js +19 -0
- package/dist/snowflake/snowflake.config.d.ts +30 -0
- package/dist/snowflake/snowflake.config.d.ts.map +1 -0
- package/dist/snowflake/snowflake.config.js +12 -0
- package/dist/snowflake/snowflake.module.d.ts +17 -0
- package/dist/snowflake/snowflake.module.d.ts.map +1 -0
- package/dist/snowflake/snowflake.module.js +58 -0
- package/dist/snowflake/snowflake.service.d.ts +21 -0
- package/dist/snowflake/snowflake.service.d.ts.map +1 -0
- package/dist/snowflake/snowflake.service.js +44 -0
- package/dist/swagger/index.d.ts +6 -0
- package/dist/swagger/index.d.ts.map +1 -0
- package/dist/swagger/index.js +19 -0
- package/dist/swagger/swagger.config.d.ts +45 -0
- package/dist/swagger/swagger.config.d.ts.map +1 -0
- package/dist/swagger/swagger.config.js +19 -0
- package/dist/swagger/swagger.decorators.d.ts +21 -0
- package/dist/swagger/swagger.decorators.d.ts.map +1 -0
- package/dist/swagger/swagger.decorators.js +112 -0
- package/dist/swagger/swagger.module.d.ts +15 -0
- package/dist/swagger/swagger.module.d.ts.map +1 -0
- package/dist/swagger/swagger.module.js +49 -0
- package/dist/swagger/swagger.service.d.ts +44 -0
- package/dist/swagger/swagger.service.d.ts.map +1 -0
- package/dist/swagger/swagger.service.js +202 -0
- package/package.json +75 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Caller = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
/**
|
|
6
|
+
* 获取调用方身份(支持服务和用户两种类型)
|
|
7
|
+
*
|
|
8
|
+
* 用于 @UseEitherGuard(ServiceKeyGuard, JwtAuthGuard) 场景,
|
|
9
|
+
* 自动识别是服务调用还是用户调用。
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* @UseEitherGuard(ServiceKeyGuard, JwtAuthGuard)
|
|
14
|
+
* @Get('/internal/orders')
|
|
15
|
+
* getOrders(@Caller() caller: CallerIdentity) {
|
|
16
|
+
* if (caller.type === 'service') {
|
|
17
|
+
* // 服务调用,无用户上下文
|
|
18
|
+
* } else {
|
|
19
|
+
* console.log(caller.user.id);
|
|
20
|
+
* }
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
exports.Caller = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
25
|
+
const request = ctx.switchToHttp().getRequest();
|
|
26
|
+
// 检查用户身份(JWT 认证)
|
|
27
|
+
if (request.user) {
|
|
28
|
+
return {
|
|
29
|
+
type: 'user',
|
|
30
|
+
user: request.user,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// 服务调用(通过 ServiceKeyGuard)
|
|
34
|
+
return {
|
|
35
|
+
type: 'service',
|
|
36
|
+
};
|
|
37
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal-auth/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,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 __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
|
+
__exportStar(require("./use-either-guard.decorator"), exports);
|
|
18
|
+
__exportStar(require("./caller.decorator"), exports);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext, Type } from '@nestjs/common';
|
|
2
|
+
import { ModuleRef, Reflector } from '@nestjs/core';
|
|
3
|
+
export declare const EITHER_GUARDS_KEY = "either-guards";
|
|
4
|
+
/**
|
|
5
|
+
* Either Guard 执行器
|
|
6
|
+
*
|
|
7
|
+
* 依次尝试每个 Guard,任一通过即可。
|
|
8
|
+
* 如果所有 Guard 都失败,抛出 UnauthorizedException。
|
|
9
|
+
*/
|
|
10
|
+
export declare class EitherGuardExecutor implements CanActivate {
|
|
11
|
+
private readonly reflector;
|
|
12
|
+
private readonly moduleRef;
|
|
13
|
+
constructor(reflector: Reflector, moduleRef: ModuleRef);
|
|
14
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 组合多个 Guard,实现 OR 逻辑(任一通过即可)
|
|
18
|
+
*
|
|
19
|
+
* @param guards - 要组合的 Guard 类列表
|
|
20
|
+
* @returns 装饰器
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // 服务调用或用户调用都可以
|
|
25
|
+
* @UseEitherGuard(ServiceApiKeyGuard, JwtAuthGuard)
|
|
26
|
+
* @Get('/internal/orders')
|
|
27
|
+
* getOrders(@Caller() caller: ServiceIdentity | UserIdentity) {}
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function UseEitherGuard(...guards: Type<CanActivate>[]): MethodDecorator & ClassDecorator;
|
|
31
|
+
//# sourceMappingURL=use-either-guard.decorator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-either-guard.decorator.d.ts","sourceRoot":"","sources":["../../../src/internal-auth/decorators/use-either-guard.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAGhB,IAAI,EAGL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;;;;GAKG;AACH,qBACa,mBAAoB,YAAW,WAAW;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS;IAGjC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAoC/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,GAAG,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,GAC7B,eAAe,GAAG,cAAc,CAKlC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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.EitherGuardExecutor = exports.EITHER_GUARDS_KEY = void 0;
|
|
13
|
+
exports.UseEitherGuard = UseEitherGuard;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const core_1 = require("@nestjs/core");
|
|
16
|
+
exports.EITHER_GUARDS_KEY = 'either-guards';
|
|
17
|
+
/**
|
|
18
|
+
* Either Guard 执行器
|
|
19
|
+
*
|
|
20
|
+
* 依次尝试每个 Guard,任一通过即可。
|
|
21
|
+
* 如果所有 Guard 都失败,抛出 UnauthorizedException。
|
|
22
|
+
*/
|
|
23
|
+
let EitherGuardExecutor = class EitherGuardExecutor {
|
|
24
|
+
reflector;
|
|
25
|
+
moduleRef;
|
|
26
|
+
constructor(reflector, moduleRef) {
|
|
27
|
+
this.reflector = reflector;
|
|
28
|
+
this.moduleRef = moduleRef;
|
|
29
|
+
}
|
|
30
|
+
async canActivate(context) {
|
|
31
|
+
const guardClasses = this.reflector.get(exports.EITHER_GUARDS_KEY, context.getHandler());
|
|
32
|
+
if (!guardClasses || guardClasses.length === 0) {
|
|
33
|
+
// 没有配置任何 Guard,默认放行
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
const errors = [];
|
|
37
|
+
for (const GuardClass of guardClasses) {
|
|
38
|
+
try {
|
|
39
|
+
// 尝试从 DI 容器获取 Guard 实例
|
|
40
|
+
const guard = this.moduleRef.get(GuardClass, { strict: false });
|
|
41
|
+
const result = await guard.canActivate(context);
|
|
42
|
+
if (result) {
|
|
43
|
+
// 任一 Guard 通过即可
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
// 记录错误信息,继续尝试下一个 Guard
|
|
49
|
+
errors.push(error instanceof Error ? error.message : 'Unknown auth error');
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// 所有 Guard 都失败
|
|
54
|
+
throw new common_1.UnauthorizedException(`Authentication failed: ${errors.join(' | ')}`);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.EitherGuardExecutor = EitherGuardExecutor;
|
|
58
|
+
exports.EitherGuardExecutor = EitherGuardExecutor = __decorate([
|
|
59
|
+
(0, common_1.Injectable)(),
|
|
60
|
+
__metadata("design:paramtypes", [core_1.Reflector,
|
|
61
|
+
core_1.ModuleRef])
|
|
62
|
+
], EitherGuardExecutor);
|
|
63
|
+
/**
|
|
64
|
+
* 组合多个 Guard,实现 OR 逻辑(任一通过即可)
|
|
65
|
+
*
|
|
66
|
+
* @param guards - 要组合的 Guard 类列表
|
|
67
|
+
* @returns 装饰器
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* // 服务调用或用户调用都可以
|
|
72
|
+
* @UseEitherGuard(ServiceApiKeyGuard, JwtAuthGuard)
|
|
73
|
+
* @Get('/internal/orders')
|
|
74
|
+
* getOrders(@Caller() caller: ServiceIdentity | UserIdentity) {}
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
function UseEitherGuard(...guards) {
|
|
78
|
+
return (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.EITHER_GUARDS_KEY, guards), (0, common_1.UseGuards)(EitherGuardExecutor));
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal-auth/guards/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
__exportStar(require("./service-key.guard"), exports);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
/**
|
|
4
|
+
* Service Key 验证配置
|
|
5
|
+
*/
|
|
6
|
+
export interface ServiceKeyConfig {
|
|
7
|
+
/** 服务间共享的密钥 */
|
|
8
|
+
serviceKey: string;
|
|
9
|
+
/** Header 名称,默认 'x-service-key' */
|
|
10
|
+
headerName?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const SERVICE_KEY_CONFIG = "SERVICE_KEY_CONFIG";
|
|
13
|
+
/**
|
|
14
|
+
* 服务间调用 Service Key 认证守卫
|
|
15
|
+
*
|
|
16
|
+
* 用于验证服务间调用的身份。服务 A 调用服务 B 时,
|
|
17
|
+
* 在请求头中携带 `X-Service-Key`,由本 Guard 验证。
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // 仅允许服务调用
|
|
22
|
+
* @UseGuards(ServiceKeyGuard)
|
|
23
|
+
* @Get('/internal/config')
|
|
24
|
+
* getConfig() {}
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class ServiceKeyGuard implements CanActivate {
|
|
28
|
+
private readonly reflector;
|
|
29
|
+
private readonly config?;
|
|
30
|
+
private readonly headerName;
|
|
31
|
+
private readonly serviceKey;
|
|
32
|
+
constructor(reflector: Reflector, config?: ServiceKeyConfig);
|
|
33
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
34
|
+
private extractServiceKey;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=service-key.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-key.guard.d.ts","sourceRoot":"","sources":["../../../src/internal-auth/guards/service-key.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,qBACa,eAAgB,YAAW,WAAW;IAK/C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAG1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAP1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGjB,SAAS,EAAE,SAAS,EAGpB,MAAM,CAAC,EAAE,gBAAgB;IAQtC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B9D,OAAO,CAAC,iBAAiB;CAU1B"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ServiceKeyGuard = exports.SERVICE_KEY_CONFIG = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const core_1 = require("@nestjs/core");
|
|
18
|
+
const public_decorator_1 = require("../../jwt/decorators/public.decorator");
|
|
19
|
+
exports.SERVICE_KEY_CONFIG = 'SERVICE_KEY_CONFIG';
|
|
20
|
+
/**
|
|
21
|
+
* 服务间调用 Service Key 认证守卫
|
|
22
|
+
*
|
|
23
|
+
* 用于验证服务间调用的身份。服务 A 调用服务 B 时,
|
|
24
|
+
* 在请求头中携带 `X-Service-Key`,由本 Guard 验证。
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // 仅允许服务调用
|
|
29
|
+
* @UseGuards(ServiceKeyGuard)
|
|
30
|
+
* @Get('/internal/config')
|
|
31
|
+
* getConfig() {}
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
let ServiceKeyGuard = class ServiceKeyGuard {
|
|
35
|
+
reflector;
|
|
36
|
+
config;
|
|
37
|
+
headerName;
|
|
38
|
+
serviceKey;
|
|
39
|
+
constructor(reflector, config) {
|
|
40
|
+
this.reflector = reflector;
|
|
41
|
+
this.config = config;
|
|
42
|
+
this.headerName = config?.headerName || 'x-service-key';
|
|
43
|
+
// 优先使用注入的配置,否则从环境变量读取
|
|
44
|
+
this.serviceKey = config?.serviceKey || process.env.INTERNAL_SERVICE_KEY || '';
|
|
45
|
+
console.log('[ServiceKeyGuard] constructor, serviceKey:', this.serviceKey ? '***' : 'EMPTY');
|
|
46
|
+
}
|
|
47
|
+
async canActivate(context) {
|
|
48
|
+
// 检查路由是否标记为公开
|
|
49
|
+
const isPublic = this.reflector.getAllAndOverride(public_decorator_1.IS_PUBLIC_KEY, [
|
|
50
|
+
context.getHandler(),
|
|
51
|
+
context.getClass(),
|
|
52
|
+
]);
|
|
53
|
+
if (isPublic) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
const request = context.switchToHttp().getRequest();
|
|
57
|
+
const serviceKey = this.extractServiceKey(request);
|
|
58
|
+
if (!serviceKey) {
|
|
59
|
+
throw new common_1.UnauthorizedException('Missing service key');
|
|
60
|
+
}
|
|
61
|
+
if (!this.serviceKey) {
|
|
62
|
+
throw new common_1.UnauthorizedException('Service key not configured');
|
|
63
|
+
}
|
|
64
|
+
if (serviceKey !== this.serviceKey) {
|
|
65
|
+
throw new common_1.UnauthorizedException('Invalid service key');
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
extractServiceKey(request) {
|
|
70
|
+
const serviceKey = request.headers[this.headerName];
|
|
71
|
+
if (typeof serviceKey === 'string') {
|
|
72
|
+
return serviceKey;
|
|
73
|
+
}
|
|
74
|
+
if (Array.isArray(serviceKey) && serviceKey.length > 0) {
|
|
75
|
+
return serviceKey[0];
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
exports.ServiceKeyGuard = ServiceKeyGuard;
|
|
81
|
+
exports.ServiceKeyGuard = ServiceKeyGuard = __decorate([
|
|
82
|
+
(0, common_1.Injectable)(),
|
|
83
|
+
__param(1, (0, common_1.Optional)()),
|
|
84
|
+
__param(1, (0, common_1.Inject)(exports.SERVICE_KEY_CONFIG)),
|
|
85
|
+
__metadata("design:paramtypes", [core_1.Reflector, Object])
|
|
86
|
+
], ServiceKeyGuard);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 服务间调用认证模块
|
|
3
|
+
*
|
|
4
|
+
* 提供服务间调用的认证能力:
|
|
5
|
+
* - Service Key 认证:用于服务间调用(共享密钥)
|
|
6
|
+
* - JWT 透传:用于服务代用户调用(需用户上下文)
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // 1. 在 AppModule 中注册
|
|
11
|
+
* import { InternalAuthModule, EnvService } from 'yz-web-server-shared';
|
|
12
|
+
*
|
|
13
|
+
* @Module({
|
|
14
|
+
* imports: [
|
|
15
|
+
* InternalAuthModule.forRootAsync({
|
|
16
|
+
* useFactory: (envService: EnvService) => ({
|
|
17
|
+
* serviceKey: envService.getItem('INTERNAL_SERVICE_KEY'),
|
|
18
|
+
* }),
|
|
19
|
+
* inject: [EnvService],
|
|
20
|
+
* }),
|
|
21
|
+
* ],
|
|
22
|
+
* })
|
|
23
|
+
* export class AppModule {}
|
|
24
|
+
*
|
|
25
|
+
* // 2. 在 Controller 中使用
|
|
26
|
+
* import { ServiceKeyGuard, UseEitherGuard, Caller } from 'yz-web-server-shared';
|
|
27
|
+
*
|
|
28
|
+
* // 仅允许服务调用
|
|
29
|
+
* @UseGuards(ServiceKeyGuard)
|
|
30
|
+
* @Get('/internal/config')
|
|
31
|
+
* getConfig() {}
|
|
32
|
+
*
|
|
33
|
+
* // 服务或用户调用都可以
|
|
34
|
+
* @UseEitherGuard(ServiceKeyGuard, JwtAuthGuard)
|
|
35
|
+
* @Get('/internal/orders')
|
|
36
|
+
* getOrders(@Caller() caller: CallerIdentity) {}
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export * from './internal-auth.module';
|
|
40
|
+
export * from './guards';
|
|
41
|
+
export * from './decorators';
|
|
42
|
+
export * from './internal-http.service';
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/internal-auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,cAAc,wBAAwB,CAAC;AAGvC,cAAc,UAAU,CAAC;AAGzB,cAAc,cAAc,CAAC;AAG7B,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 服务间调用认证模块
|
|
4
|
+
*
|
|
5
|
+
* 提供服务间调用的认证能力:
|
|
6
|
+
* - Service Key 认证:用于服务间调用(共享密钥)
|
|
7
|
+
* - JWT 透传:用于服务代用户调用(需用户上下文)
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // 1. 在 AppModule 中注册
|
|
12
|
+
* import { InternalAuthModule, EnvService } from 'yz-web-server-shared';
|
|
13
|
+
*
|
|
14
|
+
* @Module({
|
|
15
|
+
* imports: [
|
|
16
|
+
* InternalAuthModule.forRootAsync({
|
|
17
|
+
* useFactory: (envService: EnvService) => ({
|
|
18
|
+
* serviceKey: envService.getItem('INTERNAL_SERVICE_KEY'),
|
|
19
|
+
* }),
|
|
20
|
+
* inject: [EnvService],
|
|
21
|
+
* }),
|
|
22
|
+
* ],
|
|
23
|
+
* })
|
|
24
|
+
* export class AppModule {}
|
|
25
|
+
*
|
|
26
|
+
* // 2. 在 Controller 中使用
|
|
27
|
+
* import { ServiceKeyGuard, UseEitherGuard, Caller } from 'yz-web-server-shared';
|
|
28
|
+
*
|
|
29
|
+
* // 仅允许服务调用
|
|
30
|
+
* @UseGuards(ServiceKeyGuard)
|
|
31
|
+
* @Get('/internal/config')
|
|
32
|
+
* getConfig() {}
|
|
33
|
+
*
|
|
34
|
+
* // 服务或用户调用都可以
|
|
35
|
+
* @UseEitherGuard(ServiceKeyGuard, JwtAuthGuard)
|
|
36
|
+
* @Get('/internal/orders')
|
|
37
|
+
* getOrders(@Caller() caller: CallerIdentity) {}
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
41
|
+
if (k2 === undefined) k2 = k;
|
|
42
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
43
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
44
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
45
|
+
}
|
|
46
|
+
Object.defineProperty(o, k2, desc);
|
|
47
|
+
}) : (function(o, m, k, k2) {
|
|
48
|
+
if (k2 === undefined) k2 = k;
|
|
49
|
+
o[k2] = m[k];
|
|
50
|
+
}));
|
|
51
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
52
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
53
|
+
};
|
|
54
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
55
|
+
// Module
|
|
56
|
+
__exportStar(require("./internal-auth.module"), exports);
|
|
57
|
+
// Guards
|
|
58
|
+
__exportStar(require("./guards"), exports);
|
|
59
|
+
// Decorators
|
|
60
|
+
__exportStar(require("./decorators"), exports);
|
|
61
|
+
// HTTP Client
|
|
62
|
+
__exportStar(require("./internal-http.service"), exports);
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
/**
|
|
3
|
+
* 服务间调用认证模块配置
|
|
4
|
+
*/
|
|
5
|
+
export interface InternalAuthModuleOptions {
|
|
6
|
+
/**
|
|
7
|
+
* 服务间共享的密钥
|
|
8
|
+
*/
|
|
9
|
+
serviceKey?: string;
|
|
10
|
+
/**
|
|
11
|
+
* 请求超时时间(毫秒),默认 10000
|
|
12
|
+
*/
|
|
13
|
+
timeout?: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 服务间调用认证模块
|
|
17
|
+
*
|
|
18
|
+
* 提供服务间调用的认证能力:
|
|
19
|
+
* - Service Key 认证(服务身份)
|
|
20
|
+
* - InternalHttpService(服务间 HTTP 调用)
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // 在 AppModule 中注册
|
|
25
|
+
* @Module({
|
|
26
|
+
* imports: [
|
|
27
|
+
* InternalAuthModule.forRootAsync({
|
|
28
|
+
* useFactory: (envService: EnvService) => ({
|
|
29
|
+
* serviceKey: envService.getItem('INTERNAL_SERVICE_KEY'),
|
|
30
|
+
* }),
|
|
31
|
+
* inject: [EnvService],
|
|
32
|
+
* }),
|
|
33
|
+
* ],
|
|
34
|
+
* })
|
|
35
|
+
* export class AppModule {}
|
|
36
|
+
*
|
|
37
|
+
* // 在 Service 中使用
|
|
38
|
+
* @Injectable()
|
|
39
|
+
* export class MyService {
|
|
40
|
+
* constructor(private readonly internalHttp: InternalHttpService) {}
|
|
41
|
+
*
|
|
42
|
+
* async getPlatformConfig() {
|
|
43
|
+
* return this.internalHttp.get('platform', '/portal/api/platform/internal/config');
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class InternalAuthModule {
|
|
49
|
+
/**
|
|
50
|
+
* 同步注册模块
|
|
51
|
+
*/
|
|
52
|
+
static forRoot(options?: InternalAuthModuleOptions): DynamicModule;
|
|
53
|
+
/**
|
|
54
|
+
* 异步注册模块(支持依赖注入配置)
|
|
55
|
+
*/
|
|
56
|
+
static forRootAsync(options: {
|
|
57
|
+
imports?: any[];
|
|
58
|
+
useFactory: (...args: any[]) => Promise<InternalAuthModuleOptions> | InternalAuthModuleOptions;
|
|
59
|
+
inject?: any[];
|
|
60
|
+
}): DynamicModule;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=internal-auth.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-auth.module.d.ts","sourceRoot":"","sources":["../../src/internal-auth/internal-auth.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,MAAM,gBAAgB,CAAC;AAajE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBACa,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,yBAA8B,GAAG,aAAa;IA6BtE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE;QAC3B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,UAAU,EAAE,CACV,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,yBAAyB,CAAC,GAAG,yBAAyB,CAAC;QACpE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB,GAAG,aAAa;CAiClB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
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 InternalAuthModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.InternalAuthModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const service_key_guard_1 = require("./guards/service-key.guard");
|
|
13
|
+
const use_either_guard_decorator_1 = require("./decorators/use-either-guard.decorator");
|
|
14
|
+
const internal_http_service_1 = require("./internal-http.service");
|
|
15
|
+
/**
|
|
16
|
+
* 服务间调用认证模块
|
|
17
|
+
*
|
|
18
|
+
* 提供服务间调用的认证能力:
|
|
19
|
+
* - Service Key 认证(服务身份)
|
|
20
|
+
* - InternalHttpService(服务间 HTTP 调用)
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // 在 AppModule 中注册
|
|
25
|
+
* @Module({
|
|
26
|
+
* imports: [
|
|
27
|
+
* InternalAuthModule.forRootAsync({
|
|
28
|
+
* useFactory: (envService: EnvService) => ({
|
|
29
|
+
* serviceKey: envService.getItem('INTERNAL_SERVICE_KEY'),
|
|
30
|
+
* }),
|
|
31
|
+
* inject: [EnvService],
|
|
32
|
+
* }),
|
|
33
|
+
* ],
|
|
34
|
+
* })
|
|
35
|
+
* export class AppModule {}
|
|
36
|
+
*
|
|
37
|
+
* // 在 Service 中使用
|
|
38
|
+
* @Injectable()
|
|
39
|
+
* export class MyService {
|
|
40
|
+
* constructor(private readonly internalHttp: InternalHttpService) {}
|
|
41
|
+
*
|
|
42
|
+
* async getPlatformConfig() {
|
|
43
|
+
* return this.internalHttp.get('platform', '/portal/api/platform/internal/config');
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
let InternalAuthModule = InternalAuthModule_1 = class InternalAuthModule {
|
|
49
|
+
/**
|
|
50
|
+
* 同步注册模块
|
|
51
|
+
*/
|
|
52
|
+
static forRoot(options = {}) {
|
|
53
|
+
const providers = [
|
|
54
|
+
service_key_guard_1.ServiceKeyGuard,
|
|
55
|
+
use_either_guard_decorator_1.EitherGuardExecutor,
|
|
56
|
+
internal_http_service_1.InternalHttpService,
|
|
57
|
+
];
|
|
58
|
+
if (options.serviceKey) {
|
|
59
|
+
providers.push({
|
|
60
|
+
provide: service_key_guard_1.SERVICE_KEY_CONFIG,
|
|
61
|
+
useValue: { serviceKey: options.serviceKey },
|
|
62
|
+
});
|
|
63
|
+
providers.push({
|
|
64
|
+
provide: internal_http_service_1.INTERNAL_HTTP_CONFIG,
|
|
65
|
+
useValue: {
|
|
66
|
+
serviceKey: options.serviceKey,
|
|
67
|
+
timeout: options.timeout,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
module: InternalAuthModule_1,
|
|
73
|
+
providers,
|
|
74
|
+
exports: [service_key_guard_1.ServiceKeyGuard, use_either_guard_decorator_1.EitherGuardExecutor, internal_http_service_1.InternalHttpService],
|
|
75
|
+
global: true,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 异步注册模块(支持依赖注入配置)
|
|
80
|
+
*/
|
|
81
|
+
static forRootAsync(options) {
|
|
82
|
+
return {
|
|
83
|
+
module: InternalAuthModule_1,
|
|
84
|
+
imports: options.imports || [],
|
|
85
|
+
providers: [
|
|
86
|
+
service_key_guard_1.ServiceKeyGuard,
|
|
87
|
+
use_either_guard_decorator_1.EitherGuardExecutor,
|
|
88
|
+
internal_http_service_1.InternalHttpService,
|
|
89
|
+
{
|
|
90
|
+
provide: service_key_guard_1.SERVICE_KEY_CONFIG,
|
|
91
|
+
useFactory: async (...args) => {
|
|
92
|
+
const config = await options.useFactory(...args);
|
|
93
|
+
console.log('[InternalAuthModule] SERVICE_KEY_CONFIG useFactory called, serviceKey:', config.serviceKey);
|
|
94
|
+
return { serviceKey: config.serviceKey };
|
|
95
|
+
},
|
|
96
|
+
inject: options.inject || [],
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
provide: internal_http_service_1.INTERNAL_HTTP_CONFIG,
|
|
100
|
+
useFactory: async (...args) => {
|
|
101
|
+
const config = await options.useFactory(...args);
|
|
102
|
+
return {
|
|
103
|
+
serviceKey: config.serviceKey,
|
|
104
|
+
timeout: config.timeout,
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
inject: options.inject || [],
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
exports: [service_key_guard_1.ServiceKeyGuard, use_either_guard_decorator_1.EitherGuardExecutor, internal_http_service_1.InternalHttpService],
|
|
111
|
+
global: true,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
exports.InternalAuthModule = InternalAuthModule;
|
|
116
|
+
exports.InternalAuthModule = InternalAuthModule = InternalAuthModule_1 = __decorate([
|
|
117
|
+
(0, common_1.Module)({})
|
|
118
|
+
], InternalAuthModule);
|