@loopstack/auth 0.8.0 → 0.9.0
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/CHANGELOG.md +21 -0
- package/LICENSE +43 -21
- package/dist/auth.module.d.ts +2 -2
- package/dist/auth.module.js +29 -24
- package/dist/auth.module.js.map +1 -1
- package/dist/controllers/auth.controller.d.ts +9 -16
- package/dist/controllers/auth.controller.js +40 -95
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/dtos/hub-login-request.dto.d.ts +4 -0
- package/dist/dtos/hub-login-request.dto.js +30 -0
- package/dist/dtos/hub-login-request.dto.js.map +1 -0
- package/dist/dtos/worker-info.dto.d.ts +5 -0
- package/dist/dtos/worker-info.dto.js +42 -0
- package/dist/dtos/worker-info.dto.js.map +1 -0
- package/dist/exceptions/hub.exceptions.d.ts +16 -0
- package/dist/exceptions/hub.exceptions.js +35 -0
- package/dist/exceptions/hub.exceptions.js.map +1 -0
- package/dist/guards/hub-auth.guard.d.ts +4 -0
- package/dist/guards/{dev-auth.guard.js → hub-auth.guard.js} +6 -6
- package/dist/guards/hub-auth.guard.js.map +1 -0
- package/dist/guards/index.d.ts +0 -3
- package/dist/guards/index.js +0 -3
- package/dist/guards/index.js.map +1 -1
- package/dist/guards/jwt-auth.guard.d.ts +5 -3
- package/dist/guards/jwt-auth.guard.js +14 -4
- package/dist/guards/jwt-auth.guard.js.map +1 -1
- package/dist/guards/worker-auth.guard.d.ts +7 -0
- package/dist/{strategies/dev.strategy.js → guards/worker-auth.guard.js} +15 -20
- package/dist/guards/worker-auth.guard.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/auth-config.interface.d.ts +3 -13
- package/dist/interfaces/hub-service.interfaces.d.ts +16 -0
- package/dist/interfaces/hub-service.interfaces.js +3 -0
- package/dist/interfaces/hub-service.interfaces.js.map +1 -0
- package/dist/repositories/user.repository.d.ts +0 -1
- package/dist/repositories/user.repository.js +0 -6
- package/dist/repositories/user.repository.js.map +1 -1
- package/dist/services/auth.service.d.ts +7 -11
- package/dist/services/auth.service.js +32 -46
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/config-validation.service.d.ts +8 -0
- package/dist/services/config-validation.service.js +44 -0
- package/dist/services/config-validation.service.js.map +1 -0
- package/dist/services/hub-audit.service.d.ts +14 -0
- package/dist/services/hub-audit.service.js +47 -0
- package/dist/services/hub-audit.service.js.map +1 -0
- package/dist/services/hub.service.d.ts +20 -0
- package/dist/services/hub.service.js +179 -0
- package/dist/services/hub.service.js.map +1 -0
- package/dist/services/index.d.ts +1 -2
- package/dist/services/index.js +1 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/token.service.d.ts +10 -6
- package/dist/services/token.service.js +24 -21
- package/dist/services/token.service.js.map +1 -1
- package/dist/strategies/hub.strategy.d.ts +17 -0
- package/dist/strategies/hub.strategy.js +67 -0
- package/dist/strategies/hub.strategy.js.map +1 -0
- package/dist/strategies/index.d.ts +1 -3
- package/dist/strategies/index.js +1 -3
- package/dist/strategies/index.js.map +1 -1
- package/dist/strategies/jwt.strategy.d.ts +1 -1
- package/dist/strategies/jwt.strategy.js +10 -7
- package/dist/strategies/jwt.strategy.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -11
- package/dist/decorators/current-user.decorator.d.ts +0 -1
- package/dist/decorators/current-user.decorator.js +0 -9
- package/dist/decorators/current-user.decorator.js.map +0 -1
- package/dist/decorators/index.d.ts +0 -3
- package/dist/decorators/index.js +0 -20
- package/dist/decorators/index.js.map +0 -1
- package/dist/decorators/public.decorator.d.ts +0 -1
- package/dist/decorators/public.decorator.js +0 -8
- package/dist/decorators/public.decorator.js.map +0 -1
- package/dist/decorators/roles.decorator.d.ts +0 -1
- package/dist/decorators/roles.decorator.js +0 -8
- package/dist/decorators/roles.decorator.js.map +0 -1
- package/dist/guards/dev-auth.guard.d.ts +0 -4
- package/dist/guards/dev-auth.guard.js.map +0 -1
- package/dist/guards/google-auth.guard.d.ts +0 -5
- package/dist/guards/google-auth.guard.js +0 -23
- package/dist/guards/google-auth.guard.js.map +0 -1
- package/dist/guards/local-auth.guard.d.ts +0 -4
- package/dist/guards/local-auth.guard.js +0 -18
- package/dist/guards/local-auth.guard.js.map +0 -1
- package/dist/repositories/auth-provider.repository.d.ts +0 -9
- package/dist/repositories/auth-provider.repository.js +0 -47
- package/dist/repositories/auth-provider.repository.js.map +0 -1
- package/dist/services/oauth.service.d.ts +0 -15
- package/dist/services/oauth.service.js +0 -91
- package/dist/services/oauth.service.js.map +0 -1
- package/dist/services/password.service.d.ts +0 -5
- package/dist/services/password.service.js +0 -25
- package/dist/services/password.service.js.map +0 -1
- package/dist/strategies/dev.strategy.d.ts +0 -9
- package/dist/strategies/dev.strategy.js.map +0 -1
- package/dist/strategies/google.strategy.d.ts +0 -8
- package/dist/strategies/google.strategy.js +0 -51
- package/dist/strategies/google.strategy.js.map +0 -1
- package/dist/strategies/local.strategy.d.ts +0 -8
- package/dist/strategies/local.strategy.js +0 -36
- package/dist/strategies/local.strategy.js.map +0 -1
package/dist/guards/index.d.ts
CHANGED
package/dist/guards/index.js
CHANGED
|
@@ -15,8 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./jwt-auth.guard"), exports);
|
|
18
|
-
__exportStar(require("./local-auth.guard"), exports);
|
|
19
18
|
__exportStar(require("./roles.guard"), exports);
|
|
20
|
-
__exportStar(require("./google-auth.guard"), exports);
|
|
21
|
-
__exportStar(require("./dev-auth.guard"), exports);
|
|
22
19
|
//# sourceMappingURL=index.js.map
|
package/dist/guards/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAgC;AAChC,gDAA6B"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ExecutionContext } from '@nestjs/common';
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
4
|
declare const JwtAuthGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
|
|
4
5
|
export declare class JwtAuthGuard extends JwtAuthGuard_base {
|
|
5
|
-
private reflector;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
private readonly reflector;
|
|
7
|
+
private readonly configService;
|
|
8
|
+
constructor(reflector: Reflector, configService: ConfigService);
|
|
9
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
8
10
|
}
|
|
9
11
|
export {};
|
|
@@ -14,13 +14,16 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const core_1 = require("@nestjs/core");
|
|
15
15
|
const passport_1 = require("@nestjs/passport");
|
|
16
16
|
const shared_1 = require("@loopstack/shared");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
17
18
|
let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)('jwt') {
|
|
18
19
|
reflector;
|
|
19
|
-
|
|
20
|
+
configService;
|
|
21
|
+
constructor(reflector, configService) {
|
|
20
22
|
super();
|
|
21
23
|
this.reflector = reflector;
|
|
24
|
+
this.configService = configService;
|
|
22
25
|
}
|
|
23
|
-
canActivate(context) {
|
|
26
|
+
async canActivate(context) {
|
|
24
27
|
const isPublic = this.reflector.getAllAndOverride(shared_1.IS_PUBLIC_KEY, [
|
|
25
28
|
context.getHandler(),
|
|
26
29
|
context.getClass(),
|
|
@@ -28,12 +31,19 @@ let JwtAuthGuard = class JwtAuthGuard extends (0, passport_1.AuthGuard)('jwt') {
|
|
|
28
31
|
if (isPublic) {
|
|
29
32
|
return true;
|
|
30
33
|
}
|
|
31
|
-
|
|
34
|
+
const result = await super.canActivate(context);
|
|
35
|
+
if (!result) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const { user } = context.switchToHttp().getRequest();
|
|
39
|
+
const clientId = this.configService.get('auth.clientId');
|
|
40
|
+
return clientId === user.workerId;
|
|
32
41
|
}
|
|
33
42
|
};
|
|
34
43
|
exports.JwtAuthGuard = JwtAuthGuard;
|
|
35
44
|
exports.JwtAuthGuard = JwtAuthGuard = __decorate([
|
|
36
45
|
(0, common_1.Injectable)(),
|
|
37
|
-
__metadata("design:paramtypes", [core_1.Reflector
|
|
46
|
+
__metadata("design:paramtypes", [core_1.Reflector,
|
|
47
|
+
config_1.ConfigService])
|
|
38
48
|
], JwtAuthGuard);
|
|
39
49
|
//# sourceMappingURL=jwt-auth.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../src/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8D;AAC9D,uCAAyC;AACzC,+CAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"jwt-auth.guard.js","sourceRoot":"","sources":["../../src/guards/jwt-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8D;AAC9D,uCAAyC;AACzC,+CAA6C;AAC7C,8CAAwE;AACxE,2CAA+C;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,oBAAS,EAAC,KAAK,CAAC;IAE7B;IACA;IAFnB,YACmB,SAAoB,EACpB,aAA4B;QAE7C,KAAK,EAAE,CAAC;QAHS,cAAS,GAAT,SAAS,CAAW;QACpB,kBAAa,GAAb,aAAa,CAAe;IAG/C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,sBAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAOD,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,eAAe,CAAC,CAAC;QACjE,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;CACF,CAAA;AAjCY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAGmB,gBAAS;QACL,sBAAa;GAHpC,YAAY,CAiCxB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
export declare class WorkerAuthGuard implements CanActivate {
|
|
4
|
+
private readonly configService;
|
|
5
|
+
constructor(configService: ConfigService);
|
|
6
|
+
canActivate(context: ExecutionContext): boolean;
|
|
7
|
+
}
|
|
@@ -9,28 +9,23 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const passport_1 = require("@nestjs/passport");
|
|
12
|
+
exports.WorkerAuthGuard = void 0;
|
|
14
13
|
const common_1 = require("@nestjs/common");
|
|
15
|
-
const
|
|
16
|
-
let
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
let WorkerAuthGuard = class WorkerAuthGuard {
|
|
16
|
+
configService;
|
|
17
|
+
constructor(configService) {
|
|
18
|
+
this.configService = configService;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
firstName: 'Dev',
|
|
25
|
-
lastName: 'User',
|
|
26
|
-
roles: [],
|
|
27
|
-
isActive: true,
|
|
28
|
-
};
|
|
20
|
+
canActivate(context) {
|
|
21
|
+
const { user } = context.switchToHttp().getRequest();
|
|
22
|
+
const clientId = this.configService.get('auth.clientId');
|
|
23
|
+
return clientId === user.workerId;
|
|
29
24
|
}
|
|
30
25
|
};
|
|
31
|
-
exports.
|
|
32
|
-
exports.
|
|
26
|
+
exports.WorkerAuthGuard = WorkerAuthGuard;
|
|
27
|
+
exports.WorkerAuthGuard = WorkerAuthGuard = __decorate([
|
|
33
28
|
(0, common_1.Injectable)(),
|
|
34
|
-
__metadata("design:paramtypes", [])
|
|
35
|
-
],
|
|
36
|
-
//# sourceMappingURL=
|
|
29
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
30
|
+
], WorkerAuthGuard);
|
|
31
|
+
//# sourceMappingURL=worker-auth.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-auth.guard.js","sourceRoot":"","sources":["../../src/guards/worker-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA2E;AAC3E,2CAA+C;AAaxC,IAAM,eAAe,GAArB,MAAM,eAAe;IACG;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D,WAAW,CAAC,OAAyB;QACnC,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,eAAe,CAAC,CAAC;QACjE,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;CACF,CAAA;AARY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEiC,sBAAa;GAD9C,eAAe,CAQ3B"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -22,5 +22,4 @@ __exportStar(require("./guards"), exports);
|
|
|
22
22
|
__exportStar(require("./interfaces"), exports);
|
|
23
23
|
__exportStar(require("./repositories"), exports);
|
|
24
24
|
__exportStar(require("./services"), exports);
|
|
25
|
-
__exportStar(require("./services"), exports);
|
|
26
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,2DAAwC;AACxC,8CAA2B;AAE3B,gDAA6B;AAC7B,2CAAwB;AACxB,+CAA4B;AAC5B,iDAA8B;AAC9B,6CAA0B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA6B;AAC7B,2DAAwC;AACxC,8CAA2B;AAE3B,gDAA6B;AAC7B,2CAAwB;AACxB,+CAA4B;AAC5B,iDAA8B;AAC9B,6CAA0B"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import { AuthStrategy } from '@loopstack/shared';
|
|
2
|
-
export interface OAuthProviderConfig {
|
|
3
|
-
clientId: string;
|
|
4
|
-
clientSecret: string;
|
|
5
|
-
callbackUrl: string;
|
|
6
|
-
scope?: string[];
|
|
7
|
-
}
|
|
8
1
|
export interface AuthConfig {
|
|
9
|
-
strategies: AuthStrategy[];
|
|
10
2
|
jwt?: {
|
|
11
3
|
secret: string;
|
|
12
4
|
expiresIn: string;
|
|
@@ -14,9 +6,7 @@ export interface AuthConfig {
|
|
|
14
6
|
refreshExpiresIn?: string;
|
|
15
7
|
cookieDomain?: string;
|
|
16
8
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
facebook?: OAuthProviderConfig;
|
|
21
|
-
};
|
|
9
|
+
clientId?: string;
|
|
10
|
+
clientSecret?: string;
|
|
11
|
+
authCallback?: string;
|
|
22
12
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface HubConfig {
|
|
2
|
+
authCallback: string;
|
|
3
|
+
clientId: string;
|
|
4
|
+
clientSecret: string;
|
|
5
|
+
timeout?: number;
|
|
6
|
+
retries?: number;
|
|
7
|
+
cacheEnabled?: boolean;
|
|
8
|
+
cacheTtlSeconds?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface RequestContext {
|
|
11
|
+
correlationId: string;
|
|
12
|
+
requestId?: string;
|
|
13
|
+
userId?: string;
|
|
14
|
+
clientIp?: string;
|
|
15
|
+
userAgent?: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-service.interfaces.js","sourceRoot":"","sources":["../../src/interfaces/hub-service.interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -4,7 +4,6 @@ export declare class UserRepository {
|
|
|
4
4
|
private repository;
|
|
5
5
|
constructor(repository: Repository<User>);
|
|
6
6
|
findById(id: string): Promise<User | null>;
|
|
7
|
-
findByEmail(email: string): Promise<User | null>;
|
|
8
7
|
create(userData: Partial<User>): Promise<User>;
|
|
9
8
|
update(id: string, userData: Partial<User>): Promise<User | null>;
|
|
10
9
|
}
|
|
@@ -28,12 +28,6 @@ let UserRepository = class UserRepository {
|
|
|
28
28
|
relations: ['roles', 'roles.permissions'],
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
-
async findByEmail(email) {
|
|
32
|
-
return this.repository.findOne({
|
|
33
|
-
where: { email },
|
|
34
|
-
relations: ['roles', 'roles.permissions'],
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
31
|
async create(userData) {
|
|
38
32
|
const user = this.repository.create(userData);
|
|
39
33
|
return this.repository.save(user);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../src/repositories/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,8CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGf;IAFV,YAEU,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IACnC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../src/repositories/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,8CAAyC;AAGlC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGf;IAFV,YAEU,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;IACnC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAC7B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAuB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAuB;QAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AAtBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,aAAI,CAAC,CAAA;qCACH,oBAAU;GAHrB,cAAc,CAsB1B"}
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import { JwtService } from '@nestjs/jwt';
|
|
2
1
|
import { UserRepository } from '../repositories';
|
|
3
|
-
import { PasswordService } from './password.service';
|
|
4
2
|
import { TokenService } from './token.service';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { AuthResponseDto, User, UserResponseDto } from '@loopstack/shared';
|
|
4
|
+
import { WorkerInfoDto } from '../dtos/worker-info.dto';
|
|
5
|
+
import { ConfigService } from '@nestjs/config';
|
|
7
6
|
export declare class AuthService {
|
|
8
|
-
private
|
|
7
|
+
private readonly configService;
|
|
9
8
|
private userRepository;
|
|
10
|
-
private passwordService;
|
|
11
9
|
private tokenService;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
validateUser(email: string, password: string): Promise<any>;
|
|
15
|
-
login(user: any): Promise<AuthResponseDto>;
|
|
16
|
-
register(registerDto: RegisterDto): Promise<UserResponseDto>;
|
|
10
|
+
constructor(configService: ConfigService, userRepository: UserRepository, tokenService: TokenService);
|
|
11
|
+
login(user: User): Promise<AuthResponseDto>;
|
|
17
12
|
refresh(refreshToken: string): Promise<AuthResponseDto>;
|
|
18
13
|
mapUserToResponse(user: User): UserResponseDto;
|
|
19
14
|
getCurrentUser(userId: string): Promise<UserResponseDto>;
|
|
15
|
+
getWorkerHealthInfo(): WorkerInfoDto;
|
|
20
16
|
}
|
|
@@ -8,67 +8,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.AuthService = void 0;
|
|
16
13
|
const common_1 = require("@nestjs/common");
|
|
17
|
-
const jwt_1 = require("@nestjs/jwt");
|
|
18
14
|
const repositories_1 = require("../repositories");
|
|
19
|
-
const password_service_1 = require("./password.service");
|
|
20
15
|
const token_service_1 = require("./token.service");
|
|
21
|
-
const
|
|
16
|
+
const worker_info_dto_1 = require("../dtos/worker-info.dto");
|
|
17
|
+
const class_transformer_1 = require("class-transformer");
|
|
18
|
+
const config_1 = require("@nestjs/config");
|
|
22
19
|
let AuthService = class AuthService {
|
|
23
|
-
|
|
20
|
+
configService;
|
|
24
21
|
userRepository;
|
|
25
|
-
passwordService;
|
|
26
22
|
tokenService;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.config = config;
|
|
23
|
+
constructor(configService, userRepository, tokenService) {
|
|
24
|
+
this.configService = configService;
|
|
30
25
|
this.userRepository = userRepository;
|
|
31
|
-
this.passwordService = passwordService;
|
|
32
26
|
this.tokenService = tokenService;
|
|
33
|
-
this.jwtService = jwtService;
|
|
34
|
-
}
|
|
35
|
-
async validateUser(email, password) {
|
|
36
|
-
const user = await this.userRepository.findByEmail(email);
|
|
37
|
-
if (user && await this.passwordService.compare(password, user.password)) {
|
|
38
|
-
const { password, ...result } = user;
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
return null;
|
|
42
27
|
}
|
|
43
28
|
async login(user) {
|
|
44
|
-
const
|
|
29
|
+
const workerId = this.configService.get('auth.clientId');
|
|
30
|
+
const payload = {
|
|
31
|
+
sub: user.id,
|
|
32
|
+
roles: user.roles?.map(role => role.name) || [],
|
|
33
|
+
workerId,
|
|
34
|
+
};
|
|
35
|
+
const tokens = await this.tokenService.generateTokens(payload);
|
|
45
36
|
return {
|
|
46
37
|
...tokens,
|
|
47
38
|
tokenType: 'Bearer',
|
|
48
39
|
};
|
|
49
40
|
}
|
|
50
|
-
async register(registerDto) {
|
|
51
|
-
const existingUser = await this.userRepository.findByEmail(registerDto.email);
|
|
52
|
-
if (existingUser) {
|
|
53
|
-
throw new common_1.ConflictException('User already exists');
|
|
54
|
-
}
|
|
55
|
-
const hashedPassword = await this.passwordService.hash(registerDto.password);
|
|
56
|
-
const user = await this.userRepository.create({
|
|
57
|
-
...registerDto,
|
|
58
|
-
password: hashedPassword,
|
|
59
|
-
});
|
|
60
|
-
return this.mapUserToResponse(user);
|
|
61
|
-
}
|
|
62
41
|
async refresh(refreshToken) {
|
|
63
42
|
try {
|
|
64
|
-
const payload = this.
|
|
65
|
-
secret: this.config.jwt?.refreshSecret || this.config.jwt?.secret,
|
|
66
|
-
});
|
|
43
|
+
const payload = this.tokenService.verifyRefreshToken(refreshToken);
|
|
67
44
|
const user = await this.userRepository.findById(payload.sub);
|
|
68
45
|
if (!user || !user.isActive) {
|
|
69
46
|
throw new common_1.UnauthorizedException('Invalid refresh token');
|
|
70
47
|
}
|
|
71
|
-
const
|
|
48
|
+
const newPayload = {
|
|
49
|
+
sub: payload.sub,
|
|
50
|
+
workerId: payload.workerId,
|
|
51
|
+
roles: user.roles?.map(role => role.name) || [],
|
|
52
|
+
};
|
|
53
|
+
const tokens = await this.tokenService.generateTokens(newPayload);
|
|
72
54
|
return {
|
|
73
55
|
...tokens,
|
|
74
56
|
tokenType: 'Bearer',
|
|
@@ -81,9 +63,6 @@ let AuthService = class AuthService {
|
|
|
81
63
|
mapUserToResponse(user) {
|
|
82
64
|
return {
|
|
83
65
|
id: user.id,
|
|
84
|
-
email: user.email,
|
|
85
|
-
firstName: user.firstName,
|
|
86
|
-
lastName: user.lastName,
|
|
87
66
|
isActive: user.isActive,
|
|
88
67
|
roles: user.roles?.map(role => role.name) || [],
|
|
89
68
|
createdAt: user.createdAt,
|
|
@@ -97,14 +76,21 @@ let AuthService = class AuthService {
|
|
|
97
76
|
}
|
|
98
77
|
return this.mapUserToResponse(user);
|
|
99
78
|
}
|
|
79
|
+
getWorkerHealthInfo() {
|
|
80
|
+
return (0, class_transformer_1.plainToInstance)(worker_info_dto_1.WorkerInfoDto, {
|
|
81
|
+
clientId: this.configService.get('auth.clientId'),
|
|
82
|
+
isConfigured: !!this.configService.get('auth.clientSecret'),
|
|
83
|
+
timestamp: new Date(),
|
|
84
|
+
}, {
|
|
85
|
+
excludeExtraneousValues: true,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
100
88
|
};
|
|
101
89
|
exports.AuthService = AuthService;
|
|
102
90
|
exports.AuthService = AuthService = __decorate([
|
|
103
91
|
(0, common_1.Injectable)(),
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
token_service_1.TokenService,
|
|
108
|
-
jwt_1.JwtService])
|
|
92
|
+
__metadata("design:paramtypes", [config_1.ConfigService,
|
|
93
|
+
repositories_1.UserRepository,
|
|
94
|
+
token_service_1.TokenService])
|
|
109
95
|
], AuthService);
|
|
110
96
|
//# sourceMappingURL=auth.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { ConfigService } from '@nestjs/config';
|
|
3
|
+
export declare class ConfigValidationService implements OnModuleInit {
|
|
4
|
+
private configService;
|
|
5
|
+
constructor(configService: ConfigService);
|
|
6
|
+
onModuleInit(): void;
|
|
7
|
+
private validateAuthConfig;
|
|
8
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
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.ConfigValidationService = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const config_1 = require("@nestjs/config");
|
|
15
|
+
let ConfigValidationService = class ConfigValidationService {
|
|
16
|
+
configService;
|
|
17
|
+
constructor(configService) {
|
|
18
|
+
this.configService = configService;
|
|
19
|
+
}
|
|
20
|
+
onModuleInit() {
|
|
21
|
+
this.validateAuthConfig();
|
|
22
|
+
}
|
|
23
|
+
validateAuthConfig() {
|
|
24
|
+
const requiredConfigs = [
|
|
25
|
+
{ key: 'auth.jwt.secret', name: 'JWT_SECRET' },
|
|
26
|
+
];
|
|
27
|
+
const missingConfigs = [];
|
|
28
|
+
requiredConfigs.forEach(({ key, name }) => {
|
|
29
|
+
const value = this.configService.get(key);
|
|
30
|
+
if (!value) {
|
|
31
|
+
missingConfigs.push(name);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
if (missingConfigs.length > 0) {
|
|
35
|
+
throw new Error(`Missing required configuration values: ${missingConfigs.join(', ')}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.ConfigValidationService = ConfigValidationService;
|
|
40
|
+
exports.ConfigValidationService = ConfigValidationService = __decorate([
|
|
41
|
+
(0, common_1.Injectable)(),
|
|
42
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
43
|
+
], ConfigValidationService);
|
|
44
|
+
//# sourceMappingURL=config-validation.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-validation.service.js","sourceRoot":"","sources":["../../src/services/config-validation.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA0D;AAC1D,2CAA+C;AAGxC,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IACd;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,YAAY;QACV,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,kBAAkB;QACxB,MAAM,eAAe,GAAG;YAGtB,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE;SAC/C,CAAC;QAEF,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,0CAA0C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA7BY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;qCAEwB,sBAAa;GADrC,uBAAuB,CA6BnC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RequestContext } from '../interfaces/hub-service.interfaces';
|
|
2
|
+
export interface HubAuditEvent {
|
|
3
|
+
action: string;
|
|
4
|
+
context: RequestContext;
|
|
5
|
+
success: boolean;
|
|
6
|
+
responseTime?: number;
|
|
7
|
+
error?: string;
|
|
8
|
+
metadata?: Record<string, any>;
|
|
9
|
+
}
|
|
10
|
+
export declare class HubAuditService {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
logCodeExchange(context: RequestContext, success: boolean, responseTime: number, error?: string, metadata?: Record<string, any>): Promise<void>;
|
|
13
|
+
private sanitizeEvent;
|
|
14
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 HubAuditService_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.HubAuditService = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
let HubAuditService = HubAuditService_1 = class HubAuditService {
|
|
13
|
+
logger = new common_1.Logger(HubAuditService_1.name);
|
|
14
|
+
async logCodeExchange(context, success, responseTime, error, metadata) {
|
|
15
|
+
const event = {
|
|
16
|
+
action: 'HUB_CODE_EXCHANGE',
|
|
17
|
+
context,
|
|
18
|
+
success,
|
|
19
|
+
responseTime,
|
|
20
|
+
error,
|
|
21
|
+
metadata: {
|
|
22
|
+
...metadata,
|
|
23
|
+
timestamp: new Date().toISOString(),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
if (success) {
|
|
27
|
+
this.logger.log(`HUB_AUDIT: ${JSON.stringify(this.sanitizeEvent(event))}`);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.logger.error(`HUB_AUDIT_FAILURE: ${JSON.stringify(this.sanitizeEvent(event))}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
sanitizeEvent(event) {
|
|
34
|
+
return {
|
|
35
|
+
...event,
|
|
36
|
+
context: {
|
|
37
|
+
...event.context,
|
|
38
|
+
userId: event.context.userId ? `${event.context.userId.substring(0, 8)}...` : undefined,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.HubAuditService = HubAuditService;
|
|
44
|
+
exports.HubAuditService = HubAuditService = HubAuditService_1 = __decorate([
|
|
45
|
+
(0, common_1.Injectable)()
|
|
46
|
+
], HubAuditService);
|
|
47
|
+
//# sourceMappingURL=hub-audit.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-audit.service.js","sourceRoot":"","sources":["../../src/services/hub-audit.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AAa7C,IAAM,eAAe,uBAArB,MAAM,eAAe;IACT,MAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;IAE3D,KAAK,CAAC,eAAe,CACnB,OAAuB,EACvB,OAAgB,EAChB,YAAoB,EACpB,KAAc,EACd,QAA8B;QAE9B,MAAM,KAAK,GAAkB;YAC3B,MAAM,EAAE,mBAAmB;YAC3B,OAAO;YACP,OAAO;YACP,YAAY;YACZ,KAAK;YACL,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC;SACF,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAoB;QACxC,OAAO;YACL,GAAG,KAAK;YACR,OAAO,EAAE;gBACP,GAAG,KAAK,CAAC,OAAO;gBAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACxF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAtCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;GACA,eAAe,CAsC3B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { IValidateCodeResponse } from '@loopstack/shared';
|
|
3
|
+
import { ConfigService } from '@nestjs/config';
|
|
4
|
+
import { RequestContext } from '../interfaces/hub-service.interfaces';
|
|
5
|
+
import { HubAuditService } from './hub-audit.service';
|
|
6
|
+
export declare class HubService implements OnModuleInit {
|
|
7
|
+
private readonly configService;
|
|
8
|
+
private readonly auditService;
|
|
9
|
+
private readonly logger;
|
|
10
|
+
private axiosInstance;
|
|
11
|
+
private config;
|
|
12
|
+
constructor(configService: ConfigService, auditService: HubAuditService);
|
|
13
|
+
onModuleInit(): Promise<void>;
|
|
14
|
+
private initialize;
|
|
15
|
+
private loadConfiguration;
|
|
16
|
+
private validateConfiguration;
|
|
17
|
+
private setupAxiosInterceptors;
|
|
18
|
+
private retryOperation;
|
|
19
|
+
exchangeCodeForUserInfo(code: string, context?: RequestContext): Promise<IValidateCodeResponse>;
|
|
20
|
+
}
|