@node-c/domain-iam 1.0.0-alpha8 → 1.0.0-beta0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/common/definitions/common.constants.d.ts +6 -1
  2. package/dist/common/definitions/common.constants.js +5 -0
  3. package/dist/common/definitions/common.constants.js.map +1 -1
  4. package/dist/module/iam.module.js.map +1 -1
  5. package/dist/services/authentication/iam.authentication.definitions.d.ts +79 -16
  6. package/dist/services/authentication/iam.authentication.definitions.js +6 -9
  7. package/dist/services/authentication/iam.authentication.definitions.js.map +1 -1
  8. package/dist/services/authentication/iam.authentication.service.d.ts +10 -3
  9. package/dist/services/authentication/iam.authentication.service.js +30 -2
  10. package/dist/services/authentication/iam.authentication.service.js.map +1 -1
  11. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.d.ts +38 -0
  12. package/dist/services/{authenticationLocal/iam.authenticationLocal.definitions.js → authenticationOAuth2/iam.authenticationOAuth2.definitions.js} +1 -1
  13. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.js.map +1 -0
  14. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.d.ts +24 -0
  15. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js +299 -0
  16. package/dist/services/authenticationOAuth2/iam.authenticationOAuth2.service.js.map +1 -0
  17. package/dist/services/authenticationOAuth2/index.d.ts +2 -0
  18. package/dist/services/authenticationOAuth2/index.js +19 -0
  19. package/dist/services/authenticationOAuth2/index.js.map +1 -0
  20. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.d.ts +12 -0
  21. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.js +3 -0
  22. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.js.map +1 -0
  23. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.d.ts +14 -0
  24. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js +141 -0
  25. package/dist/services/authenticationUserLocal/iam.authenticationUserLocal.service.js.map +1 -0
  26. package/dist/services/authenticationUserLocal/index.d.ts +2 -0
  27. package/dist/services/{authenticationLocal → authenticationUserLocal}/index.js +2 -2
  28. package/dist/services/authenticationUserLocal/index.js.map +1 -0
  29. package/dist/services/authorization/iam.authorization.definitions.d.ts +33 -23
  30. package/dist/services/authorization/iam.authorization.definitions.js +7 -0
  31. package/dist/services/authorization/iam.authorization.definitions.js.map +1 -1
  32. package/dist/services/authorization/iam.authorization.service.d.ts +28 -13
  33. package/dist/services/authorization/iam.authorization.service.js +231 -125
  34. package/dist/services/authorization/iam.authorization.service.js.map +1 -1
  35. package/dist/services/index.d.ts +4 -2
  36. package/dist/services/index.js +4 -2
  37. package/dist/services/index.js.map +1 -1
  38. package/dist/services/mfa/iam.mfa.definitions.d.ts +21 -0
  39. package/dist/services/mfa/iam.mfa.definitions.js +8 -0
  40. package/dist/services/mfa/iam.mfa.definitions.js.map +1 -0
  41. package/dist/services/mfa/iam.mfa.service.d.ts +9 -0
  42. package/dist/services/mfa/iam.mfa.service.js +31 -0
  43. package/dist/services/mfa/iam.mfa.service.js.map +1 -0
  44. package/dist/services/mfa/index.d.ts +2 -0
  45. package/dist/services/{users → mfa}/index.js +2 -2
  46. package/dist/services/mfa/index.js.map +1 -0
  47. package/dist/services/tokenManager/iam.tokenManager.definitions.d.ts +14 -3
  48. package/dist/services/tokenManager/iam.tokenManager.definitions.js.map +1 -1
  49. package/dist/services/tokenManager/iam.tokenManager.service.d.ts +23 -9
  50. package/dist/services/tokenManager/iam.tokenManager.service.js +111 -43
  51. package/dist/services/tokenManager/iam.tokenManager.service.js.map +1 -1
  52. package/dist/services/userManager/iam.userManager.definitions.d.ts +45 -0
  53. package/dist/services/userManager/iam.userManager.definitions.js +8 -0
  54. package/dist/services/userManager/iam.userManager.definitions.js.map +1 -0
  55. package/dist/services/userManager/iam.userManager.service.d.ts +32 -0
  56. package/dist/services/userManager/iam.userManager.service.js +331 -0
  57. package/dist/services/userManager/iam.userManager.service.js.map +1 -0
  58. package/dist/services/userManager/index.d.ts +2 -0
  59. package/dist/services/userManager/index.js +19 -0
  60. package/dist/services/userManager/index.js.map +1 -0
  61. package/package.json +9 -8
  62. package/src/common/definitions/common.constants.ts +14 -0
  63. package/src/common/definitions/index.ts +1 -0
  64. package/src/index.ts +3 -0
  65. package/src/module/iam.definitions.ts +15 -0
  66. package/src/module/iam.module.ts +29 -0
  67. package/src/module/index.ts +2 -0
  68. package/src/services/authentication/iam.authentication.definitions.ts +100 -0
  69. package/src/services/authentication/iam.authentication.service.ts +103 -0
  70. package/src/services/authentication/index.ts +2 -0
  71. package/src/services/authenticationOAuth2/iam.authenticationOAuth2.definitions.ts +71 -0
  72. package/src/services/authenticationOAuth2/iam.authenticationOAuth2.service.ts +350 -0
  73. package/src/services/authenticationOAuth2/index.ts +2 -0
  74. package/src/services/authenticationUserLocal/iam.authenticationUserLocal.definitions.ts +29 -0
  75. package/src/services/authenticationUserLocal/iam.authenticationUserLocal.service.ts +171 -0
  76. package/src/services/authenticationUserLocal/index.ts +2 -0
  77. package/src/services/authorization/iam.authorization.definitions.ts +55 -0
  78. package/src/services/authorization/iam.authorization.service.ts +384 -0
  79. package/src/services/authorization/index.ts +2 -0
  80. package/src/services/index.ts +7 -0
  81. package/src/services/mfa/iam.mfa.definitions.ts +28 -0
  82. package/src/services/mfa/iam.mfa.service.ts +38 -0
  83. package/src/services/mfa/index.ts +2 -0
  84. package/src/services/tokenManager/iam.tokenManager.definitions.ts +61 -0
  85. package/src/services/tokenManager/iam.tokenManager.service.ts +290 -0
  86. package/src/services/tokenManager/index.ts +2 -0
  87. package/src/services/userManager/iam.userManager.definitions.ts +73 -0
  88. package/src/services/userManager/iam.userManager.service.ts +461 -0
  89. package/src/services/userManager/index.ts +2 -0
  90. package/dist/services/authenticationLocal/iam.authenticationLocal.definitions.d.ts +0 -11
  91. package/dist/services/authenticationLocal/iam.authenticationLocal.definitions.js.map +0 -1
  92. package/dist/services/authenticationLocal/iam.authenticationLocal.service.d.ts +0 -10
  93. package/dist/services/authenticationLocal/iam.authenticationLocal.service.js +0 -70
  94. package/dist/services/authenticationLocal/iam.authenticationLocal.service.js.map +0 -1
  95. package/dist/services/authenticationLocal/index.d.ts +0 -2
  96. package/dist/services/authenticationLocal/index.js.map +0 -1
  97. package/dist/services/users/iam.users.definitions.d.ts +0 -30
  98. package/dist/services/users/iam.users.definitions.js +0 -8
  99. package/dist/services/users/iam.users.definitions.js.map +0 -1
  100. package/dist/services/users/iam.users.service.d.ts +0 -16
  101. package/dist/services/users/iam.users.service.js +0 -93
  102. package/dist/services/users/iam.users.service.js.map +0 -1
  103. package/dist/services/users/index.d.ts +0 -2
  104. package/dist/services/users/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"iam.tokenManager.definitions.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.definitions.ts"],"names":[],"mappings":";;;AAyBA,IAAY,SAKX;AALD,WAAY,SAAS;IAEnB,8BAAiB,CAAA;IAEjB,gCAAmB,CAAA;AACrB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB"}
1
+ {"version":3,"file":"iam.tokenManager.definitions.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.definitions.ts"],"names":[],"mappings":";;;AAkCA,IAAY,SAKX;AALD,WAAY,SAAS;IAEnB,8BAAiB,CAAA;IAEjB,gCAAmB,CAAA;AACrB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB"}
@@ -1,14 +1,28 @@
1
- import { ConfigProviderService, DomainCreateResult, DomainEntityService, PersistanceEntityService } from '@node-c/core';
2
- import { DecodedTokenContent, TokenEntity, TokenManagerCreateData, TokenManagerCreateOptions, VerifyAccessTokenOptions, VerifyAccessTokenReturnData } from './iam.tokenManager.definitions';
3
- export declare class IAMTokenManagerService<TokenEntityFields extends object> extends DomainEntityService<TokenEntity<TokenEntityFields>, PersistanceEntityService<TokenEntity<TokenEntityFields>>> {
1
+ import { ConfigProviderService, DataEntityService, DomainCreateResult, DomainEntityService } from '@node-c/core';
2
+ import { TokenEntity, TokenManagerCreateData, TokenManagerCreateOptions, TokenManagerVerifyResult, VerifyAccessTokenOptions, VerifyAccessTokenReturnData } from './iam.tokenManager.definitions';
3
+ import { IAMAuthenticationService, IAMAuthenticationType } from '../authentication';
4
+ import { IAMAuthenticationOAuth2Service } from '../authenticationOAuth2';
5
+ import { IAMAuthenticationUserLocalService } from '../authenticationUserLocal';
6
+ export declare class IAMTokenManagerService<TokenEntityFields extends object> {
7
+ protected authServices: {
8
+ [IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
9
+ [IAMAuthenticationType.UserLocal]?: IAMAuthenticationUserLocalService<object, object>;
10
+ } & {
11
+ [serviceName: string]: IAMAuthenticationService<object, object>;
12
+ };
4
13
  protected configProvider: ConfigProviderService;
14
+ protected domainTokensEntityService: DomainEntityService<TokenEntity<TokenEntityFields>, DataEntityService<TokenEntity<TokenEntityFields>>>;
5
15
  protected moduleName: string;
6
- protected persistanceEntityService: PersistanceEntityService<TokenEntity<TokenEntityFields>>;
7
- constructor(configProvider: ConfigProviderService, moduleName: string, persistanceEntityService: PersistanceEntityService<TokenEntity<TokenEntityFields>>);
16
+ constructor(authServices: {
17
+ [IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
18
+ [IAMAuthenticationType.UserLocal]?: IAMAuthenticationUserLocalService<object, object>;
19
+ } & {
20
+ [serviceName: string]: IAMAuthenticationService<object, object>;
21
+ }, configProvider: ConfigProviderService, domainTokensEntityService: DomainEntityService<TokenEntity<TokenEntityFields>, DataEntityService<TokenEntity<TokenEntityFields>>>, moduleName: string);
8
22
  create(data: TokenManagerCreateData<TokenEntityFields>, options: TokenManagerCreateOptions): Promise<DomainCreateResult<TokenEntity<TokenEntityFields>>>;
9
23
  verifyAccessToken(token: string, options?: VerifyAccessTokenOptions): Promise<VerifyAccessTokenReturnData<TokenEntityFields>>;
10
- protected verify(token: string, secret: string): Promise<{
11
- content?: DecodedTokenContent<TokenEntityFields>;
12
- error?: unknown;
13
- }>;
24
+ protected verify(token: string, secret: string, options?: {
25
+ forceVerifyExternal?: boolean;
26
+ verifyExternal?: boolean;
27
+ }): Promise<TokenManagerVerifyResult<TokenEntityFields>>;
14
28
  }
@@ -52,28 +52,30 @@ var __rest = (this && this.__rest) || function (s, e) {
52
52
  }
53
53
  return t;
54
54
  };
55
+ var __importDefault = (this && this.__importDefault) || function (mod) {
56
+ return (mod && mod.__esModule) ? mod : { "default": mod };
57
+ };
55
58
  Object.defineProperty(exports, "__esModule", { value: true });
56
59
  exports.IAMTokenManagerService = void 0;
57
60
  const core_1 = require("@node-c/core");
58
- const general_tools_1 = require("@ramster/general-tools");
59
61
  const jwt = __importStar(require("jsonwebtoken"));
62
+ const lodash_1 = __importDefault(require("lodash"));
60
63
  const iam_tokenManager_definitions_1 = require("./iam.tokenManager.definitions");
61
- class IAMTokenManagerService extends core_1.DomainEntityService {
62
- constructor(configProvider, moduleName, persistanceEntityService) {
63
- super(persistanceEntityService, ['create']);
64
+ const definitions_1 = require("../../common/definitions");
65
+ const authentication_1 = require("../authentication");
66
+ class IAMTokenManagerService {
67
+ constructor(authServices, configProvider, domainTokensEntityService, moduleName) {
68
+ this.authServices = authServices;
64
69
  this.configProvider = configProvider;
70
+ this.domainTokensEntityService = domainTokensEntityService;
65
71
  this.moduleName = moduleName;
66
- this.persistanceEntityService = persistanceEntityService;
67
72
  }
68
73
  create(data, options) {
69
- const _super = Object.create(null, {
70
- create: { get: () => super.create }
71
- });
72
74
  return __awaiter(this, void 0, void 0, function* () {
73
- const { configProvider, moduleName, persistanceEntityService } = this;
75
+ const { configProvider, moduleName, domainTokensEntityService } = this;
74
76
  const moduleConfig = configProvider.config.domain[moduleName];
75
77
  const { type } = data, tokenData = __rest(data, ["type"]);
76
- const { expiresInMinutes, identifierDataField, persist, purgeOldFromPersistance } = options;
78
+ const { expiresInMinutes, identifierDataField, persist, purgeOldFromData, tokenContentOnlyFields } = options;
77
79
  const signOptions = {};
78
80
  let secret;
79
81
  if (type === iam_tokenManager_definitions_1.TokenType.Access) {
@@ -108,85 +110,137 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
108
110
  });
109
111
  });
110
112
  const objectToSave = Object.assign(Object.assign({}, tokenData), { token, type });
111
- if (persist && persistanceEntityService) {
112
- if (purgeOldFromPersistance && identifierDataField) {
113
- const identifierValue = (0, general_tools_1.getNested)(data, identifierDataField);
113
+ if (tokenContentOnlyFields === null || tokenContentOnlyFields === void 0 ? void 0 : tokenContentOnlyFields.length) {
114
+ tokenContentOnlyFields.forEach(fieldName => (0, core_1.setNested)(objectToSave, fieldName, undefined, { removeNestedFieldEscapeSign: true }));
115
+ }
116
+ if (persist) {
117
+ if (purgeOldFromData && identifierDataField) {
118
+ const identifierValue = lodash_1.default.get(data, identifierDataField);
114
119
  if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
115
- yield persistanceEntityService.delete({
116
- filters: { [identifierDataField]: identifierValue }
117
- });
120
+ yield domainTokensEntityService.delete({
121
+ filters: { [identifierDataField]: identifierValue, type }
122
+ }, { requirePrimaryKeys: true });
118
123
  }
119
124
  }
120
- yield _super.create.call(this, objectToSave, { ttl: signOptions.expiresIn });
125
+ yield domainTokensEntityService.create(objectToSave, { ttl: signOptions.expiresIn });
121
126
  }
122
127
  return { result: objectToSave };
123
128
  });
124
129
  }
125
130
  verifyAccessToken(token, options) {
126
131
  return __awaiter(this, void 0, void 0, function* () {
127
- const { configProvider, moduleName, persistanceEntityService } = this;
132
+ var _a;
133
+ const { configProvider, moduleName, domainTokensEntityService } = this;
128
134
  const moduleConfig = configProvider.config.domain[moduleName];
129
135
  const { deleteFromStoreIfExpired, identifierDataField, newTokenExpiresInMinutes, persistNewToken, purgeStoreOnRenew, refreshToken, refreshTokenAccessTokenIdentifierDataField } = options || {};
130
- const { content, error } = yield this.verify(token, moduleConfig.jwtAccessSecret);
131
- let forceRenew = true;
136
+ const { content, error, externalTokenData } = yield this.verify(token, moduleConfig.jwtAccessSecret, {
137
+ verifyExternal: true
138
+ });
139
+ const externalAccessTokenExpired = !!(externalTokenData === null || externalTokenData === void 0 ? void 0 : externalTokenData.error);
140
+ const internalAccessTokenExpired = error === definitions_1.Constants.TOKEN_EXPIRED_ERROR;
141
+ let errorMessageToLog;
142
+ let externalRenewEnabled = false;
132
143
  let newToken;
133
- if (error) {
134
- let errorToThrow;
135
- let throwError = true;
136
- if (error === 'Token expired' && identifierDataField && (content === null || content === void 0 ? void 0 : content.data) && persistanceEntityService) {
144
+ let refreshTokenContent;
145
+ let renewEnabled = false;
146
+ let throwError = true;
147
+ if (internalAccessTokenExpired || externalAccessTokenExpired) {
148
+ if (identifierDataField && (content === null || content === void 0 ? void 0 : content.data)) {
137
149
  if (refreshToken && refreshTokenAccessTokenIdentifierDataField) {
138
- const { content: refreshTokenContent, error: refreshTokenError } = yield this.verify(refreshToken, moduleConfig.jwtRefreshSecret);
139
- if (refreshTokenError) {
140
- errorToThrow = refreshTokenError;
141
- }
150
+ const { content: rtc, error: refreshTokenError } = yield this.verify(refreshToken, moduleConfig.jwtRefreshSecret);
151
+ refreshTokenContent = rtc;
142
152
  if (!refreshTokenContent) {
143
- errorToThrow = new core_1.ApplicationError('Empty refresh token.');
153
+ errorMessageToLog = '[IAMTokenManagerService.verifyAccessToken]: Empty internal refresh token.';
154
+ }
155
+ else if (refreshTokenError) {
156
+ errorMessageToLog = refreshTokenError;
157
+ if (deleteFromStoreIfExpired && refreshTokenContent.data) {
158
+ const identifierValue = lodash_1.default.get(refreshTokenContent.data, refreshTokenAccessTokenIdentifierDataField);
159
+ if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
160
+ yield domainTokensEntityService.delete({
161
+ filters: { [refreshTokenAccessTokenIdentifierDataField]: identifierValue, token: refreshToken }
162
+ }, { requirePrimaryKeys: true });
163
+ }
164
+ }
144
165
  }
145
166
  else {
146
- const refreshTokenCheckValue = (0, general_tools_1.getNested)(content.data, refreshTokenAccessTokenIdentifierDataField);
167
+ const refreshTokenCheckValue = lodash_1.default.get(content.data, refreshTokenAccessTokenIdentifierDataField);
147
168
  if (refreshTokenCheckValue !== refreshToken) {
148
- errorToThrow = new core_1.ApplicationError('Mismatched refresh token.');
169
+ errorMessageToLog = '[IAMTokenManagerService.verifyAccessToken]: Mismatched internal refresh token.';
149
170
  }
150
171
  else {
151
- forceRenew = false;
172
+ renewEnabled = true;
152
173
  throwError = false;
153
174
  }
154
175
  }
176
+ if (externalAccessTokenExpired) {
177
+ if ((_a = refreshTokenContent === null || refreshTokenContent === void 0 ? void 0 : refreshTokenContent.data) === null || _a === void 0 ? void 0 : _a.externalToken) {
178
+ externalRenewEnabled = true;
179
+ renewEnabled = true;
180
+ throwError = false;
181
+ }
182
+ else {
183
+ errorMessageToLog = '[IAMTokenManagerService.verifyAccessToken]: Missing external refresh token.';
184
+ }
185
+ }
155
186
  }
156
187
  else {
188
+ errorMessageToLog =
189
+ '[IAMTokenManagerService.verifyAccessToken]: Access token expired & no refresh token data present or configured.';
157
190
  if (deleteFromStoreIfExpired) {
158
- const identifierValue = (0, general_tools_1.getNested)(content.data, identifierDataField);
191
+ const identifierValue = lodash_1.default.get(content.data, identifierDataField);
159
192
  if (typeof identifierValue !== 'undefined' && typeof identifierValue !== 'object') {
160
- yield persistanceEntityService.delete({
161
- filters: { [identifierDataField]: identifierValue }
162
- });
193
+ yield domainTokensEntityService.delete({
194
+ filters: { [identifierDataField]: identifierValue, token }
195
+ }, { requirePrimaryKeys: true });
163
196
  }
164
197
  }
165
- errorToThrow = new core_1.ApplicationError('Expired access token.');
166
198
  }
167
199
  }
168
- if (throwError) {
169
- throw errorToThrow || error;
200
+ else {
201
+ errorMessageToLog = '[IAMTokenManagerService.verify]: Internal access token expired.';
170
202
  }
171
203
  }
172
- if ((content === null || content === void 0 ? void 0 : content.data) && forceRenew) {
204
+ else {
205
+ throwError = false;
206
+ }
207
+ if (throwError) {
208
+ console.error(errorMessageToLog);
209
+ throw new core_1.ApplicationError('Expired access token.');
210
+ }
211
+ if ((content === null || content === void 0 ? void 0 : content.data) && renewEnabled) {
173
212
  const tokenData = Object.assign(Object.assign({}, content.data), { type: iam_tokenManager_definitions_1.TokenType.Access });
174
213
  if (refreshToken && refreshTokenAccessTokenIdentifierDataField) {
175
214
  tokenData[refreshTokenAccessTokenIdentifierDataField] = refreshToken;
176
215
  }
216
+ if (externalRenewEnabled) {
217
+ const externalAccessTokenRenewalResult = yield this.authServices[refreshTokenContent.data.externalTokenAuthService].refreshExternalAccessToken({
218
+ accessToken: content.data.externalToken,
219
+ refreshToken: refreshTokenContent.data.externalToken
220
+ });
221
+ if (externalAccessTokenRenewalResult.error) {
222
+ console.error(errorMessageToLog);
223
+ throw new core_1.ApplicationError('Expired access token.');
224
+ }
225
+ tokenData.externalToken = externalAccessTokenRenewalResult.newAccessToken;
226
+ }
177
227
  const { result } = yield this.create(tokenData, {
178
228
  expiresInMinutes: newTokenExpiresInMinutes,
179
229
  identifierDataField,
180
230
  persist: persistNewToken,
181
- purgeOldFromPersistance: purgeStoreOnRenew
231
+ purgeOldFromData: purgeStoreOnRenew
182
232
  });
183
233
  newToken = result.token;
184
234
  }
185
235
  return { content, newToken };
186
236
  });
187
237
  }
188
- verify(token, secret) {
238
+ verify(token, secret, options) {
189
239
  return __awaiter(this, void 0, void 0, function* () {
240
+ var _a, _b;
241
+ const { configProvider, moduleName } = this;
242
+ const moduleConfig = configProvider.config.domain[moduleName];
243
+ const { forceVerifyExternal, verifyExternal } = options || {};
190
244
  const data = yield new Promise(resolve => {
191
245
  jwt.verify(token, secret, (err, decoded) => {
192
246
  if (err) {
@@ -195,7 +249,21 @@ class IAMTokenManagerService extends core_1.DomainEntityService {
195
249
  resolve({ content: decoded });
196
250
  });
197
251
  });
198
- return data;
252
+ const returnData = Object.assign({}, data);
253
+ const tokenPayload = (_a = data.content) === null || _a === void 0 ? void 0 : _a.data;
254
+ if (verifyExternal && (tokenPayload === null || tokenPayload === void 0 ? void 0 : tokenPayload.externalToken) && (tokenPayload === null || tokenPayload === void 0 ? void 0 : tokenPayload.externalTokenAuthService)) {
255
+ const authServiceConfig = (_b = moduleConfig.authServiceSettings) === null || _b === void 0 ? void 0 : _b[tokenPayload === null || tokenPayload === void 0 ? void 0 : tokenPayload.externalTokenAuthService];
256
+ if ((authServiceConfig === null || authServiceConfig === void 0 ? void 0 : authServiceConfig.processExternalTokensOnVerify) || forceVerifyExternal) {
257
+ const authService = this.authServices[tokenPayload === null || tokenPayload === void 0 ? void 0 : tokenPayload.externalTokenAuthService];
258
+ if (!authService) {
259
+ throw new core_1.ApplicationError(`[IAMTokenManagerService.verify]: Auth service ${tokenPayload === null || tokenPayload === void 0 ? void 0 : tokenPayload.externalTokenAuthService} not configured.`);
260
+ }
261
+ returnData.externalTokenData = yield authService.verifyExternalAccessToken({
262
+ accessToken: tokenPayload === null || tokenPayload === void 0 ? void 0 : tokenPayload.externalToken
263
+ });
264
+ }
265
+ }
266
+ return returnData;
199
267
  });
200
268
  }
201
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"iam.tokenManager.service.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iam.tokenManager.service.js","sourceRoot":"","sources":["../../../src/services/tokenManager/iam.tokenManager.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { AppConfigCommonDomainIAMAuthServiceConfigCompleteSettings, AppConfigCommonDomainIAMAuthServiceConfigInitiateSettings, AppConfigDomainIAMAuthenticationStep, DomainFindOnePrivateOptions, GenericObject } from '@node-c/core';
2
+ import { IAMAuthenticationCompleteResult, IAMAuthenticationInitiateResult, IAMAuthenticationService, IAMAuthenticationType } from '../authentication';
3
+ import { AuthorizationUser } from '../authorization';
4
+ import { IAMMFAType } from '../mfa';
5
+ export interface IAMUserManagerCreateAccessTokenOptions<AuthData = unknown> {
6
+ auth: {
7
+ mfaType?: IAMMFAType;
8
+ type: IAMAuthenticationType | string;
9
+ } & AuthData;
10
+ filters?: GenericObject;
11
+ mainFilterField: string;
12
+ rememberUser?: boolean;
13
+ step?: AppConfigDomainIAMAuthenticationStep;
14
+ }
15
+ export type IAMUserManagerCreateAccessTokenReturnData<UserData> = {
16
+ accessToken: string;
17
+ refreshToken?: string;
18
+ user: UserData;
19
+ } | {
20
+ nextStepsRequired: boolean;
21
+ };
22
+ export type IAMUserManagerExecuteStepData<AuthData = unknown> = Omit<IAMUserManagerCreateAccessTokenOptions<AuthData>, 'rememberUser' | 'step'>;
23
+ export interface IAMUserManagerExecuteStepOptions<User extends object> {
24
+ authService: IAMAuthenticationService<User, User>;
25
+ name: AppConfigDomainIAMAuthenticationStep;
26
+ stepConfig: AppConfigCommonDomainIAMAuthServiceConfigCompleteSettings | AppConfigCommonDomainIAMAuthServiceConfigInitiateSettings;
27
+ }
28
+ export interface IAMUserManagerExecuteStepResult<User extends object> {
29
+ stepResult: IAMAuthenticationCompleteResult | IAMAuthenticationInitiateResult;
30
+ user: IAMUserManagerUserWithPermissionsData<User, unknown> | null;
31
+ userFilterField?: string | undefined;
32
+ userFilterValue?: unknown | undefined;
33
+ }
34
+ export interface IAMUserManagerGetUserWithPermissionsDataOptions extends DomainFindOnePrivateOptions {
35
+ keepPassword?: boolean;
36
+ }
37
+ export type IAMUserManagerUserWithPermissionsData<UserData, AuthorizationPointId> = AuthorizationUser<AuthorizationPointId> & UserData;
38
+ export interface IAMUserManagerUserTokenEnityFields<UserId = unknown> {
39
+ refreshToken?: string;
40
+ userId: UserId;
41
+ user?: IAMUserManagerUserWithPermissionsData<object, unknown>;
42
+ }
43
+ export declare enum IAMUserManagerUserTokenUserIdentifier {
44
+ FieldName = "userId"
45
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IAMUserManagerUserTokenUserIdentifier = void 0;
4
+ var IAMUserManagerUserTokenUserIdentifier;
5
+ (function (IAMUserManagerUserTokenUserIdentifier) {
6
+ IAMUserManagerUserTokenUserIdentifier["FieldName"] = "userId";
7
+ })(IAMUserManagerUserTokenUserIdentifier || (exports.IAMUserManagerUserTokenUserIdentifier = IAMUserManagerUserTokenUserIdentifier = {}));
8
+ //# sourceMappingURL=iam.userManager.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iam.userManager.definitions.js","sourceRoot":"","sources":["../../../src/services/userManager/iam.userManager.definitions.ts"],"names":[],"mappings":";;;AAqEA,IAAY,qCAGX;AAHD,WAAY,qCAAqC;IAE/C,6DAAoB,CAAA;AACtB,CAAC,EAHW,qCAAqC,qDAArC,qCAAqC,QAGhD"}
@@ -0,0 +1,32 @@
1
+ import { ConfigProviderService, DataDefaultData, DataEntityService, DataFindOneOptions, DomainEntityService, DomainEntityServiceDefaultData, GenericObject } from '@node-c/core';
2
+ import { IAMUserManagerCreateAccessTokenOptions, IAMUserManagerCreateAccessTokenReturnData, IAMUserManagerGetUserWithPermissionsDataOptions, IAMUserManagerUserTokenEnityFields, IAMUserManagerUserWithPermissionsData } from './iam.userManager.definitions';
3
+ import { IAMAuthenticationService, IAMAuthenticationType } from '../authentication';
4
+ import { IAMAuthenticationOAuth2Service } from '../authenticationOAuth2';
5
+ import { IAMAuthenticationUserLocalService } from '../authenticationUserLocal';
6
+ import { IAMTokenManagerService } from '../tokenManager';
7
+ export declare class IAMUserManagerService<User extends object, Data extends DomainEntityServiceDefaultData<Partial<User>> = DomainEntityServiceDefaultData<Partial<User>>, DataEntityServiceData extends DataDefaultData<Partial<User>> = DataDefaultData<Partial<User>>> {
8
+ protected authServices: {
9
+ [IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
10
+ [IAMAuthenticationType.UserLocal]?: IAMAuthenticationUserLocalService<object, object>;
11
+ } & {
12
+ [serviceName: string]: IAMAuthenticationService<object, object>;
13
+ };
14
+ protected configProvider: ConfigProviderService;
15
+ protected dataUsersAuthCacheService: DataEntityService<GenericObject>;
16
+ protected domainUsersEntityService: DomainEntityService<User, DataEntityService<User, DataEntityServiceData>, Data, Record<string, DataEntityService<Partial<User>, DataDefaultData<object>>> | undefined>;
17
+ protected moduleName: string;
18
+ protected tokenManager: IAMTokenManagerService<IAMUserManagerUserTokenEnityFields>;
19
+ constructor(authServices: {
20
+ [IAMAuthenticationType.OAuth2]?: IAMAuthenticationOAuth2Service<object, object>;
21
+ [IAMAuthenticationType.UserLocal]?: IAMAuthenticationUserLocalService<object, object>;
22
+ } & {
23
+ [serviceName: string]: IAMAuthenticationService<object, object>;
24
+ }, configProvider: ConfigProviderService, dataUsersAuthCacheService: DataEntityService<GenericObject>, domainUsersEntityService: DomainEntityService<User, DataEntityService<User, DataEntityServiceData>, Data, Record<string, DataEntityService<Partial<User>, DataDefaultData<object>>> | undefined>, moduleName: string, tokenManager: IAMTokenManagerService<IAMUserManagerUserTokenEnityFields>);
25
+ createAccessToken<AuthData = unknown>(options: IAMUserManagerCreateAccessTokenOptions<AuthData>): Promise<IAMUserManagerCreateAccessTokenReturnData<User>>;
26
+ private executeStep;
27
+ protected getUserForStepExecution(options: {
28
+ filters: GenericObject;
29
+ mainFilterField: string;
30
+ }): Promise<IAMUserManagerUserWithPermissionsData<User, unknown> | null>;
31
+ getUserWithPermissionsData(_options: DataFindOneOptions, _privateOptions?: IAMUserManagerGetUserWithPermissionsDataOptions): Promise<IAMUserManagerUserWithPermissionsData<User, unknown> | null>;
32
+ }