mongodb-dynamic-api 5.4.1 → 5.4.2
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 +22 -0
- package/package.json +3 -3
- package/src/adapters/socket-adapter.js +7 -3
- package/src/adapters/socket-adapter.js.map +1 -1
- package/src/gateways/base.gateway.js +6 -1
- package/src/gateways/base.gateway.js.map +1 -1
- package/src/guards/base-policies.guard.js +7 -9
- package/src/guards/base-policies.guard.js.map +1 -1
- package/src/guards/jwt-socket.guard.js +6 -1
- package/src/guards/jwt-socket.guard.js.map +1 -1
- package/src/helpers/auth-token.helper.d.ts +10 -0
- package/src/helpers/auth-token.helper.js +18 -0
- package/src/helpers/auth-token.helper.js.map +1 -0
- package/src/helpers/mint-token-pair.helper.js +2 -2
- package/src/helpers/mint-token-pair.helper.js.map +1 -1
- package/src/helpers/request-filter.helper.d.ts +4 -0
- package/src/helpers/request-filter.helper.js +35 -0
- package/src/helpers/request-filter.helper.js.map +1 -0
- package/src/helpers/resolve-broadcast.helper.js +2 -1
- package/src/helpers/resolve-broadcast.helper.js.map +1 -1
- package/src/modules/auth/auth-broadcast.helper.js +9 -3
- package/src/modules/auth/auth-broadcast.helper.js.map +1 -1
- package/src/modules/auth/auth.module.d.ts +1 -0
- package/src/modules/auth/auth.module.js +13 -0
- package/src/modules/auth/auth.module.js.map +1 -1
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +6 -2
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -1
- package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js +6 -1
- package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js.map +1 -1
- package/src/modules/auth/mixins/auth-controller.mixin.js +4 -23
- package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
- package/src/modules/auth/mixins/auth-gateway.mixin.js +2 -1
- package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -1
- package/src/modules/auth/services/base-auth.service.d.ts +1 -0
- package/src/modules/auth/services/base-auth.service.js +31 -21
- package/src/modules/auth/services/base-auth.service.js.map +1 -1
- package/src/modules/auth/strategies/jwt-refresh.strategy.js +5 -1
- package/src/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
- package/src/modules/auth/strategies/jwt.strategy.d.ts +1 -3
- package/src/modules/auth/strategies/jwt.strategy.js +5 -2
- package/src/modules/auth/strategies/jwt.strategy.js.map +1 -1
- package/src/routes/get-many/base-get-many.service.js +2 -0
- package/src/routes/get-many/base-get-many.service.js.map +1 -1
- package/src/services/base/base.service.d.ts +4 -5
- package/src/services/base/base.service.js +9 -9
- package/src/services/base/base.service.js.map +1 -1
- package/src/version.json +1 -1
- package/test/for-feature/ability-predicate-request-filters.e2e-spec.d.ts +1 -0
- package/test/for-feature/ability-predicate-request-filters.e2e-spec.js +149 -0
- package/test/for-feature/ability-predicate-request-filters.e2e-spec.js.map +1 -0
- package/test/for-feature/broadcast-payload-serialization.e2e-spec.d.ts +1 -0
- package/test/for-feature/broadcast-payload-serialization.e2e-spec.js +64 -0
- package/test/for-feature/broadcast-payload-serialization.e2e-spec.js.map +1 -0
- package/test/for-root/auth-api-reset-password.e2e-spec.js +2 -2
- package/test/for-root/auth-api-reset-password.e2e-spec.js.map +1 -1
- package/test/for-root/auth-api-token-types.e2e-spec.d.ts +1 -0
- package/test/for-root/auth-api-token-types.e2e-spec.js +111 -0
- package/test/for-root/auth-api-token-types.e2e-spec.js.map +1 -0
- package/test/for-root/websockets-auth-reset-password.e2e-spec.js +2 -2
- package/test/for-root/websockets-auth-reset-password.e2e-spec.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
|
|
3
|
+
## [5.4.2](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.1...v5.4.2) (2026-09-26)
|
|
4
|
+
|
|
5
|
+
### quality
|
|
6
|
+
|
|
7
|
+
* **quality:** avoid implicit stringification in the reset-password flow (S6551) ([70647e0](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/70647e0a28b1a1e9a55e4ea35572533273fe6497))
|
|
8
|
+
|
|
9
|
+
### deps
|
|
10
|
+
|
|
11
|
+
* **deps:** bump bcrypt to 6 and @nestjs/platform-express to 12.1 ([7d3d057](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/7d3d057b2238ff968a302443ba485e6e30068f11))
|
|
12
|
+
|
|
13
|
+
### websockets
|
|
14
|
+
|
|
15
|
+
* **websockets:** serialize broadcast payloads and honor the cors option ([ca7425b](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ca7425b92770dd81b963ec61603cb5969c15f80b))
|
|
16
|
+
|
|
17
|
+
### auth
|
|
18
|
+
|
|
19
|
+
* **auth:** verify reset tokens and type every signed token ([ef39643](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ef39643a63995dbe0ac554a0d3a98221b3bdcb85))
|
|
20
|
+
|
|
21
|
+
### guards
|
|
22
|
+
|
|
23
|
+
* **guards:** check the documents a request actually targets ([d317d35](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d317d357fd55d168aef0e1781dc6b745239ea54e))
|
|
24
|
+
|
|
3
25
|
## [5.4.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.0...v5.4.1) (2026-09-26)
|
|
4
26
|
|
|
5
27
|
## [5.4.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.3.0...v5.4.0) (2026-09-26)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongodb-dynamic-api",
|
|
3
|
-
"version": "5.4.
|
|
3
|
+
"version": "5.4.2",
|
|
4
4
|
"description": "Auto generated CRUD API for MongoDB using NestJS",
|
|
5
5
|
"readmeFilename": "README.md",
|
|
6
6
|
"main": "index.js",
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"@nestjs/jwt": "^12.0.1",
|
|
51
51
|
"@nestjs/mongoose": "^12.0.0",
|
|
52
52
|
"@nestjs/passport": "^12.0.0",
|
|
53
|
-
"@nestjs/platform-express": "^12.0
|
|
53
|
+
"@nestjs/platform-express": "^12.1.0",
|
|
54
54
|
"@nestjs/platform-socket.io": "^12.0.1",
|
|
55
55
|
"@nestjs/swagger": "^12.0.1",
|
|
56
56
|
"@nestjs/websockets": "^12.0.1",
|
|
57
57
|
"@types/lodash": "^4.14.202",
|
|
58
|
-
"bcrypt": "^
|
|
58
|
+
"bcrypt": "^6.0.0",
|
|
59
59
|
"cache-manager": "^6.1.6",
|
|
60
60
|
"class-transformer": "^0.5.1",
|
|
61
61
|
"class-validator": "^0.14.1",
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SocketAdapter = void 0;
|
|
4
4
|
const platform_socket_io_1 = require("@nestjs/platform-socket.io");
|
|
5
5
|
const jwt = require("jsonwebtoken");
|
|
6
|
+
const auth_token_helper_1 = require("../helpers/auth-token.helper");
|
|
6
7
|
const ws_config_store_1 = require("../helpers/ws-config.store");
|
|
7
8
|
const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
|
|
8
9
|
class SocketAdapter extends platform_socket_io_1.IoAdapter {
|
|
@@ -13,7 +14,7 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
|
|
|
13
14
|
}
|
|
14
15
|
createIOServer(port, options) {
|
|
15
16
|
if (!this.ioServer) {
|
|
16
|
-
this.ioServer = super.createIOServer(port, { ...options, cors: { origin: '*' } });
|
|
17
|
+
this.ioServer = super.createIOServer(port, { ...options, cors: options?.cors ?? { origin: '*' } });
|
|
17
18
|
this.ioServer.use((socket, next) => {
|
|
18
19
|
if (!ws_config_store_1.DynamicApiWsConfigStore.rejectInvalidToken) {
|
|
19
20
|
return next();
|
|
@@ -86,8 +87,11 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
|
|
|
86
87
|
return {};
|
|
87
88
|
}
|
|
88
89
|
try {
|
|
89
|
-
const
|
|
90
|
-
|
|
90
|
+
const payload = jwt.verify(token, jwtSecret);
|
|
91
|
+
if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
|
|
92
|
+
return { error: 'invalid token type' };
|
|
93
|
+
}
|
|
94
|
+
return { user: (0, auth_token_helper_1.stripTokenClaims)(payload) };
|
|
91
95
|
}
|
|
92
96
|
catch (e) {
|
|
93
97
|
return { error: e instanceof Error ? e.message : String(e) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-adapter.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/adapters/socket-adapter.ts"],"names":[],"mappings":";;;AAAA,mEAAuD;AACvD,oCAAoC;AAEpC,gEAAqE;AAErE,iFAA6E;AAW7E,MAAa,aAAc,SAAQ,8BAAS;IAA5C;;QACmB,WAAM,GAAG,IAAI,kDAAuB,CAAC,eAAe,CAAC,CAAC;QAC/D,aAAQ,GAAkB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"socket-adapter.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/adapters/socket-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BaseGateway = void 0;
|
|
4
4
|
const websockets_1 = require("@nestjs/websockets");
|
|
5
5
|
const dynamic_api_module_1 = require("../dynamic-api.module");
|
|
6
|
+
const auth_token_helper_1 = require("../helpers/auth-token.helper");
|
|
6
7
|
const lodash_helper_1 = require("../helpers/lodash.helper");
|
|
7
8
|
const resolve_broadcast_helper_1 = require("../helpers/resolve-broadcast.helper");
|
|
8
9
|
const ws_config_store_1 = require("../helpers/ws-config.store");
|
|
@@ -29,7 +30,11 @@ class BaseGateway {
|
|
|
29
30
|
this.logger.warn('Invalid access token');
|
|
30
31
|
this.logger.error(e.message, e.stack);
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
+
if (verified && !(0, auth_token_helper_1.isTokenOfType)(verified, 'access')) {
|
|
34
|
+
this.logger.warn('Invalid access token type');
|
|
35
|
+
verified = undefined;
|
|
36
|
+
}
|
|
37
|
+
const user = verified ? (0, auth_token_helper_1.stripTokenClaims)(verified) : {};
|
|
33
38
|
socket.user = !(0, lodash_helper_1.isEmpty)(user) ? user : undefined;
|
|
34
39
|
}
|
|
35
40
|
if (socket.user?.id && verified?.exp > Date.now() / 1000) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.gateway.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/gateways/base.gateway.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AAEjD,8DAAyD;AACzD,4DAAmD;AACnD,kFAAuE;AACvE,gEAAqE;AAErE,iFAA6E;AAI7E,MAAsB,WAAW;IAG/B,YAAyC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAF9C,WAAM,GAAG,IAAI,kDAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEN,CAAC;IAEzD,eAAe,CAAC,MAA8B,EAAE,QAAiB;QACzE,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAElE,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAe,CAAC;QAC3D,IAAI,QAAyD,CAAC;QAE9D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;oBAC7C,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;
|
|
1
|
+
{"version":3,"file":"base.gateway.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/gateways/base.gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.BaseSocketPoliciesGuard = exports.BasePoliciesGuard = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const websockets_1 = require("@nestjs/websockets");
|
|
6
|
+
const request_filter_helper_1 = require("../helpers/request-filter.helper");
|
|
6
7
|
const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
|
|
7
8
|
const base_service_1 = require("../services/base/base.service");
|
|
8
9
|
class BasePoliciesGuard extends base_service_1.BaseService {
|
|
@@ -16,22 +17,20 @@ class BasePoliciesGuard extends base_service_1.BaseService {
|
|
|
16
17
|
if (!user || !this.authAbilityPredicate(user, body)) {
|
|
17
18
|
throw new common_1.ForbiddenException('Access Denied');
|
|
18
19
|
}
|
|
19
|
-
this.user = user;
|
|
20
20
|
}
|
|
21
21
|
if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
|
|
22
22
|
if (!user) {
|
|
23
23
|
throw new common_1.ForbiddenException('Access Denied');
|
|
24
24
|
}
|
|
25
|
-
this.user = user;
|
|
26
25
|
const targetId = params?.[this.targetParam ?? 'id'];
|
|
27
26
|
if (targetId) {
|
|
28
|
-
await this.findOneDocumentWithAbilityPredicate(targetId, query);
|
|
27
|
+
await this.findOneDocumentWithAbilityPredicate(targetId, (0, request_filter_helper_1.buildAbilityPredicateFilter)(query), undefined, user);
|
|
29
28
|
}
|
|
30
29
|
else if (this.routeType === 'Aggregate' && query && this.queryToPipeline) {
|
|
31
|
-
await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(query));
|
|
30
|
+
await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(query), user);
|
|
32
31
|
}
|
|
33
32
|
else {
|
|
34
|
-
await this.findManyDocumentsWithAbilityPredicate(query);
|
|
33
|
+
await this.findManyDocumentsWithAbilityPredicate((0, request_filter_helper_1.buildAbilityPredicateFilter)(query), user);
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
return true;
|
|
@@ -70,19 +69,18 @@ class BaseSocketPoliciesGuard extends base_service_1.BaseService {
|
|
|
70
69
|
}
|
|
71
70
|
if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
|
|
72
71
|
try {
|
|
73
|
-
this.user = socket.user;
|
|
74
72
|
const { id } = data || {};
|
|
75
73
|
if (id) {
|
|
76
74
|
this.logger.debug(`Finding one document with id: ${id} and ability predicate`);
|
|
77
|
-
await this.findOneDocumentWithAbilityPredicate(id);
|
|
75
|
+
await this.findOneDocumentWithAbilityPredicate(id, undefined, undefined, socket.user);
|
|
78
76
|
}
|
|
79
77
|
else if (this.routeType === 'Aggregate' && data && this.queryToPipeline) {
|
|
80
78
|
this.logger.debug('Aggregating documents with ability predicate');
|
|
81
|
-
await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data));
|
|
79
|
+
await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data), socket.user);
|
|
82
80
|
}
|
|
83
81
|
else {
|
|
84
82
|
this.logger.debug('Finding many documents with ability predicate');
|
|
85
|
-
await this.findManyDocumentsWithAbilityPredicate(data);
|
|
83
|
+
await this.findManyDocumentsWithAbilityPredicate((0, request_filter_helper_1.buildAbilityPredicateFilter)(data), socket.user);
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
86
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;AACzF,mDAAiD;AAIjD,iFAA6E;AAE7E,gEAA4D;AAG5D,MAAe,iBAA6C,SAAQ,0BAAmB;IAkBrF,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAE1E,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,2BAAkB,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;
|
|
1
|
+
{"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.JwtSocketGuard = void 0;
|
|
4
4
|
const jwt_1 = require("@nestjs/jwt");
|
|
5
5
|
const websockets_1 = require("@nestjs/websockets");
|
|
6
|
+
const auth_token_helper_1 = require("../helpers/auth-token.helper");
|
|
6
7
|
const lodash_helper_1 = require("../helpers/lodash.helper");
|
|
7
8
|
const dynamic_api_module_1 = require("../dynamic-api.module");
|
|
8
9
|
const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
|
|
@@ -57,10 +58,14 @@ class JwtSocketGuard {
|
|
|
57
58
|
async extractUserFromToken(accessToken) {
|
|
58
59
|
this.logger.debug('extractUserFromToken', { accessToken: !!accessToken });
|
|
59
60
|
try {
|
|
60
|
-
const
|
|
61
|
+
const payload = await this.jwtService.verifyAsync(accessToken, {
|
|
61
62
|
secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
|
|
62
63
|
ignoreExpiration: false,
|
|
63
64
|
});
|
|
65
|
+
if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
|
|
66
|
+
throw new Error('Unexpected token type');
|
|
67
|
+
}
|
|
68
|
+
const user = (0, auth_token_helper_1.stripTokenClaims)(payload);
|
|
64
69
|
this.logger.debug('User extracted from token', { userEmail: user?.email });
|
|
65
70
|
return user;
|
|
66
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-socket.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/jwt-socket.guard.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AACzC,mDAAiD;AACjD,4DAAmD;AAEnD,8DAAyD;AACzD,iFAA6E;AAG7E,MAAa,cAAc;IAIzB,YAA+B,WAAW,KAAK;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAH9B,WAAM,GAAG,IAAI,kDAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAGzB,CAAC;IAEnD,IAAY,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAU,CAAC;gBAChC,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,WAAW,EAAE;oBACX,SAAS,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;iBAC3D;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,MAAM,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAElD,IAAI,IAAA,uBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACjC,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAEO,wBAAwB,CAAC,MAAc;QAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAe,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;YAC5C,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC5D,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,MAAM,
|
|
1
|
+
{"version":3,"file":"jwt-socket.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/jwt-socket.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type AuthTokenType = 'access' | 'refresh' | 'reset';
|
|
2
|
+
interface AuthTokenClaims {
|
|
3
|
+
iat?: number;
|
|
4
|
+
exp?: number;
|
|
5
|
+
typ?: unknown;
|
|
6
|
+
}
|
|
7
|
+
declare function isTokenOfType(payload: AuthTokenClaims | null | undefined, expected: AuthTokenType): boolean;
|
|
8
|
+
declare function stripTokenClaims<T extends AuthTokenClaims>(payload: T): Omit<T, 'iat' | 'exp' | 'typ'>;
|
|
9
|
+
export { isTokenOfType, stripTokenClaims };
|
|
10
|
+
export type { AuthTokenType };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTokenOfType = isTokenOfType;
|
|
4
|
+
exports.stripTokenClaims = stripTokenClaims;
|
|
5
|
+
function isTokenOfType(payload, expected) {
|
|
6
|
+
if (!payload) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
if (payload.typ === undefined) {
|
|
10
|
+
return expected !== 'reset';
|
|
11
|
+
}
|
|
12
|
+
return payload.typ === expected;
|
|
13
|
+
}
|
|
14
|
+
function stripTokenClaims(payload) {
|
|
15
|
+
const { iat, exp, typ, ...user } = payload;
|
|
16
|
+
return user;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=auth-token.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-token.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/auth-token.helper.ts"],"names":[],"mappings":";;AAyCS,sCAAa;AAAE,4CAAgB;AArBxC,SAAS,aAAa,CAAC,OAA2C,EAAE,QAAuB;IACzF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,QAAQ,KAAK,OAAO,CAAC;IAC9B,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC;AAClC,CAAC;AAMD,SAAS,gBAAgB,CAA4B,OAAU;IAC7D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -22,10 +22,10 @@ async function mintTokenPair(entity, user, options = {}) {
|
|
|
22
22
|
});
|
|
23
23
|
const fieldsToBuild = ['_id', 'id', loginField, ...additionalFields];
|
|
24
24
|
const payload = fieldsToBuild.reduce((acc, field) => (user[field] === undefined ? acc : { ...acc, [field]: user[field] }), {});
|
|
25
|
-
const accessToken = jwtService.sign(payload);
|
|
25
|
+
const accessToken = jwtService.sign({ ...payload, typ: 'access' });
|
|
26
26
|
const refreshSecret = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('jwtRefreshSecret');
|
|
27
27
|
const refreshTokenExpiresIn = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('jwtRefreshTokenExpiresIn');
|
|
28
|
-
const refreshToken = jwtService.sign({ ...payload, jti: (0, node_crypto_1.randomUUID)() }, {
|
|
28
|
+
const refreshToken = jwtService.sign({ ...payload, typ: 'refresh', jti: (0, node_crypto_1.randomUUID)() }, {
|
|
29
29
|
...(refreshSecret ? { secret: refreshSecret } : {}),
|
|
30
30
|
...(refreshTokenExpiresIn ? { expiresIn: refreshTokenExpiresIn } : {}),
|
|
31
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mint-token-pair.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mint-token-pair.helper.ts"],"names":[],"mappings":";;AA2IS,sCAAa;AA1ItB,qCAAyC;AACzC,6CAAyC;AAGzC,sEAAkE;AAClE,0GAAoG;AACpG,4HAAqH;AAiErH,KAAK,UAAU,aAAa,CAC1B,MAAoB,EACpB,IAAY,EACZ,UAAwC,EAAE;IAK1C,MAAM,SAAS,GAAG,+DAA4B,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAErE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,uFAAuF;cACrF,oEAAoE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,+DAA4B,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,WAAW,EAAE,UAAU,CAAiB,CAAC;IACnF,MAAM,gBAAgB,GACpB,CAAC,OAAO,CAAC,gBAAgB,IAAI,+DAA4B,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAqB,CAAC;IAC3H,MAAM,iBAAiB,GACrB,CAAC,OAAO,CAAC,iBAAiB,IAAI,+DAA4B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAA6B,CAAC;IAExH,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC;QAChC,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,EAAE,SAAS,EAAE,+DAA4B,CAAC,QAAQ,CAAC,mBAAmB,CAAyB,EAAE;KAC/G,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,CAAC,KAAqB,EAAE,IAAoB,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,CAAC;IACrG,MAAM,OAAO,GAAW,aAAa,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EACpF,EAAY,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mint-token-pair.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mint-token-pair.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertNoMongoOperators = assertNoMongoOperators;
|
|
4
|
+
exports.buildAbilityPredicateFilter = buildAbilityPredicateFilter;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
function isPlainObject(value) {
|
|
7
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
8
|
+
}
|
|
9
|
+
function assertNoMongoOperators(value) {
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
value.forEach(assertNoMongoOperators);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (!isPlainObject(value)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
for (const [key, nested] of Object.entries(value)) {
|
|
18
|
+
if (key.startsWith('$')) {
|
|
19
|
+
throw new common_1.BadRequestException(`Invalid filter key "${key}"`);
|
|
20
|
+
}
|
|
21
|
+
assertNoMongoOperators(nested);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function buildAbilityPredicateFilter(input) {
|
|
25
|
+
assertNoMongoOperators(input);
|
|
26
|
+
if (!isPlainObject(input)) {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
const { ids, ...filter } = input;
|
|
30
|
+
if (ids !== undefined) {
|
|
31
|
+
return { _id: { $in: Array.isArray(ids) ? ids : [ids] } };
|
|
32
|
+
}
|
|
33
|
+
return filter;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=request-filter.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-filter.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/request-filter.helper.ts"],"names":[],"mappings":";;AAyDS,wDAAsB;AAAE,kEAA2B;AAzD5D,2CAAqD;AAIrD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAQD,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC;QAC/D,CAAC;QAED,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAUD,SAAS,2BAA2B,CAAC,KAAc;IACjD,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveBroadcast = resolveBroadcast;
|
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
|
4
5
|
const resolve_rooms_helper_1 = require("./resolve-rooms.helper");
|
|
5
6
|
function resolveBroadcast(event, data, broadcastConfig, user) {
|
|
6
7
|
if (!broadcastConfig || !data?.length) {
|
|
@@ -19,7 +20,7 @@ function resolveBroadcast(event, data, broadcastConfig, user) {
|
|
|
19
20
|
return {
|
|
20
21
|
event: eventName || event,
|
|
21
22
|
rooms: (0, resolve_rooms_helper_1.resolveRooms)(rooms, broadcastData, user),
|
|
22
|
-
data: broadcastData,
|
|
23
|
+
data: broadcastData.map((item) => (0, class_transformer_1.instanceToPlain)(item)),
|
|
23
24
|
};
|
|
24
25
|
}
|
|
25
26
|
//# sourceMappingURL=resolve-broadcast.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-broadcast.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/resolve-broadcast.helper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"resolve-broadcast.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/resolve-broadcast.helper.ts"],"names":[],"mappings":";;AAuDS,4CAAgB;AAvDzB,yDAAoD;AACpD,iEAAsD;AAuBtD,SAAS,gBAAgB,CACvB,KAAa,EACb,IAAS,EACT,eAAqD,EACrD,IAAW;IAEX,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;IAEtD,IAAI,OAAO,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU;QACjD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,OAA8C,CAAC,IAAI,EAAE,IAAY,CAAC,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS,IAAI,KAAK;QACzB,KAAK,EAAE,IAAA,mCAAY,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;QAC/C,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,IAAI,CAAM,CAAC;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildAuthBroadcastData = buildAuthBroadcastData;
|
|
4
4
|
const lodash_helper_1 = require("../../helpers/lodash.helper");
|
|
5
|
+
const dynamic_api_global_state_service_1 = require("../../services/dynamic-api-global-state/dynamic-api-global-state.service");
|
|
5
6
|
function buildAuthBroadcastData(user, fields) {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
const data = (fields?.length ? (0, lodash_helper_1.pick)(user, fields) : { ...user });
|
|
8
|
+
const passwordField = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('credentials')?.passwordField;
|
|
9
|
+
const refreshTokenField = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('refreshTokenField');
|
|
10
|
+
for (const sensitiveField of [passwordField, refreshTokenField]) {
|
|
11
|
+
if (sensitiveField) {
|
|
12
|
+
delete data[sensitiveField];
|
|
13
|
+
}
|
|
8
14
|
}
|
|
9
|
-
return
|
|
15
|
+
return data;
|
|
10
16
|
}
|
|
11
17
|
//# sourceMappingURL=auth-broadcast.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-broadcast.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth-broadcast.helper.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"auth-broadcast.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth-broadcast.helper.ts"],"names":[],"mappings":";;AA0BS,wDAAsB;AA1B/B,+DAAmD;AAEnD,+HAAwH;AAMxH,SAAS,sBAAsB,CAC7B,IAAqB,EACrB,MAAyB;IAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,oBAAI,EAAC,IAAI,EAAE,MAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAA4B,CAAC;IAExG,MAAM,aAAa,GAAG,+DAA4B,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC1F,MAAM,iBAAiB,GAAG,+DAA4B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAErF,KAAK,MAAM,cAAc,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAChE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,IAAuB,CAAC;AACjC,CAAC"}
|
|
@@ -10,5 +10,6 @@ export declare class AuthModule implements NestModule {
|
|
|
10
10
|
providers: (import("../../interfaces").DynamicApiServiceProvider | import("@nestjs/common").Provider)[];
|
|
11
11
|
controllers: import("@nestjs/common").Type<any>[];
|
|
12
12
|
};
|
|
13
|
+
private static warnAboutJwtSecrets;
|
|
13
14
|
private static initializeAuthOptions;
|
|
14
15
|
}
|
|
@@ -17,6 +17,7 @@ const dynamic_api_module_1 = require("../../dynamic-api.module");
|
|
|
17
17
|
const dynamic_api_broadcast_gateway_1 = require("../../gateways/dynamic-api-broadcast.gateway");
|
|
18
18
|
const schema_helper_1 = require("../../helpers/schema.helper");
|
|
19
19
|
const socket_config_helper_1 = require("../../helpers/socket-config.helper");
|
|
20
|
+
const mongo_dynamic_api_logger_1 = require("../../logger/mongo-dynamic-api.logger");
|
|
20
21
|
const bcrypt_service_1 = require("../../services/bcrypt/bcrypt.service");
|
|
21
22
|
const dynamic_api_global_state_service_1 = require("../../services/dynamic-api-global-state/dynamic-api-global-state.service");
|
|
22
23
|
const dynamic_api_broadcast_service_1 = require("../../services/dynamic-api-broadcast/dynamic-api-broadcast.service");
|
|
@@ -117,7 +118,19 @@ let AuthModule = AuthModule_1 = class AuthModule {
|
|
|
117
118
|
controllers: [AuthController, ...extraControllers],
|
|
118
119
|
};
|
|
119
120
|
}
|
|
121
|
+
static warnAboutJwtSecrets(jwt) {
|
|
122
|
+
const logger = new mongo_dynamic_api_logger_1.MongoDBDynamicApiLogger('AuthModule');
|
|
123
|
+
if (!jwt?.secret) {
|
|
124
|
+
logger.warn('useAuth.jwt.secret is not set: tokens are signed with the public default secret, so anyone can forge '
|
|
125
|
+
+ 'a valid JWT. Set useAuth.jwt.secret to a long random value.');
|
|
126
|
+
}
|
|
127
|
+
if (!jwt?.refreshSecret) {
|
|
128
|
+
logger.warn('useAuth.jwt.refreshSecret is not set: refresh tokens are signed with the access token secret. '
|
|
129
|
+
+ 'Set a distinct useAuth.jwt.refreshSecret.');
|
|
130
|
+
}
|
|
131
|
+
}
|
|
120
132
|
static initializeAuthOptions({ userEntity, jwt, login, register, updateAccount, getAccount, resetPassword, refreshToken, passwordless, validationPipeOptions, webSocket, extraImports = [], extraProviders = [], extraControllers = [], }) {
|
|
133
|
+
AuthModule_1.warnAboutJwtSecrets(jwt);
|
|
121
134
|
return {
|
|
122
135
|
userEntity: userEntity,
|
|
123
136
|
jwt: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,8CAA8C;AAC9C,2CAAwE;AACxE,qCAAwC;AAExC,+CAAkD;AAClD,+CAAkD;AAClD,iEAA4D;AAC5D,gGAAgG;AAChG,+DAAoE;AACpE,6EAAiF;
|
|
1
|
+
{"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ exports.JwtSocketAuthGuard = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const jwt_1 = require("@nestjs/jwt");
|
|
13
13
|
const websockets_1 = require("@nestjs/websockets");
|
|
14
|
+
const auth_token_helper_1 = require("../../../../helpers/auth-token.helper");
|
|
14
15
|
const lodash_helper_1 = require("../../../../helpers/lodash.helper");
|
|
15
16
|
const dynamic_api_module_1 = require("../../../../dynamic-api.module");
|
|
16
17
|
const mongo_dynamic_api_logger_1 = require("../../../../logger/mongo-dynamic-api.logger");
|
|
@@ -44,11 +45,14 @@ let JwtSocketAuthGuard = JwtSocketAuthGuard_1 = class JwtSocketAuthGuard {
|
|
|
44
45
|
},
|
|
45
46
|
});
|
|
46
47
|
try {
|
|
47
|
-
const
|
|
48
|
+
const payload = await jwtService.verifyAsync(accessToken, {
|
|
48
49
|
secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
|
|
49
50
|
ignoreExpiration: false,
|
|
50
51
|
});
|
|
51
|
-
|
|
52
|
+
if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
|
|
53
|
+
throw new Error('Unexpected token type');
|
|
54
|
+
}
|
|
55
|
+
return (0, auth_token_helper_1.stripTokenClaims)(payload);
|
|
52
56
|
}
|
|
53
57
|
catch (e) {
|
|
54
58
|
this.logger.warn('extractUserFromToken jwtService.verify error');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-socket-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAAxB;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"jwt-socket-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,6EAAwF;AACxF,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAAxB;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAsDjF,CAAC;IApDQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,IAAA,uBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,wBAAwB,CAAC,MAAsB;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAe,CAAC;QAE3D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACtD,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC;YAChC,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/C,WAAW,EAAE;gBACX,SAAS,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;aAC3D;SACF,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;gBACxD,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,iCAAa,EAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,IAAA,oCAAgB,EAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AAvDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAuD9B"}
|
|
@@ -11,6 +11,7 @@ exports.JwtSocketRefreshGuard = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const jwt_1 = require("@nestjs/jwt");
|
|
13
13
|
const websockets_1 = require("@nestjs/websockets");
|
|
14
|
+
const auth_token_helper_1 = require("../../../../helpers/auth-token.helper");
|
|
14
15
|
const lodash_helper_1 = require("../../../../helpers/lodash.helper");
|
|
15
16
|
const dynamic_api_module_1 = require("../../../../dynamic-api.module");
|
|
16
17
|
const mongo_dynamic_api_logger_1 = require("../../../../logger/mongo-dynamic-api.logger");
|
|
@@ -42,10 +43,14 @@ let JwtSocketRefreshGuard = JwtSocketRefreshGuard_1 = class JwtSocketRefreshGuar
|
|
|
42
43
|
const secret = refreshSecret ?? jwtSecret;
|
|
43
44
|
const jwtService = new jwt_1.JwtService({ secret });
|
|
44
45
|
try {
|
|
45
|
-
const
|
|
46
|
+
const payload = await jwtService.verifyAsync(refreshToken, {
|
|
46
47
|
secret,
|
|
47
48
|
ignoreExpiration: false,
|
|
48
49
|
});
|
|
50
|
+
if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'refresh')) {
|
|
51
|
+
throw new Error('Unexpected token type');
|
|
52
|
+
}
|
|
53
|
+
const { jti, ...user } = (0, auth_token_helper_1.stripTokenClaims)(payload);
|
|
49
54
|
return user;
|
|
50
55
|
}
|
|
51
56
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-socket-refresh.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"jwt-socket-refresh.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,6EAAwF;AACxF,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAoDpF,CAAC;IAlDQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAE3D,IAAI,IAAA,uBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACpD,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,yBAAyB,CAAC,MAAsB;QACxD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAsB,CAAC;QAEnE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QACvD,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAqB,kBAAkB,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,aAAa,IAAI,SAAS,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE;gBACzD,MAAM;gBACN,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,iCAAa,EAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAA,oCAAgB,EAAC,OAAO,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AArDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAqDjC"}
|