@ambushsoftworks/nestjs-auth-graphql 0.6.5 → 0.7.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.
Files changed (91) hide show
  1. package/README.md +590 -1291
  2. package/dist/auth.module.d.ts +7 -3
  3. package/dist/auth.module.d.ts.map +1 -1
  4. package/dist/auth.module.js +13 -0
  5. package/dist/auth.module.js.map +1 -1
  6. package/dist/constants.d.ts +1 -0
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +2 -1
  9. package/dist/constants.js.map +1 -1
  10. package/dist/decorators/current-realm.decorator.d.ts +2 -0
  11. package/dist/decorators/current-realm.decorator.d.ts.map +1 -0
  12. package/dist/decorators/current-realm.decorator.js +10 -0
  13. package/dist/decorators/current-realm.decorator.js.map +1 -0
  14. package/dist/dto/jwt-payload.interface.d.ts +1 -0
  15. package/dist/dto/jwt-payload.interface.d.ts.map +1 -1
  16. package/dist/guards/csrf.guard.d.ts +0 -1
  17. package/dist/guards/csrf.guard.d.ts.map +1 -1
  18. package/dist/guards/csrf.guard.js +2 -8
  19. package/dist/guards/csrf.guard.js.map +1 -1
  20. package/dist/guards/permission.guard.d.ts +0 -1
  21. package/dist/guards/permission.guard.d.ts.map +1 -1
  22. package/dist/guards/permission.guard.js +2 -8
  23. package/dist/guards/permission.guard.js.map +1 -1
  24. package/dist/guards/tenant.guard.d.ts +0 -1
  25. package/dist/guards/tenant.guard.d.ts.map +1 -1
  26. package/dist/guards/tenant.guard.js +2 -9
  27. package/dist/guards/tenant.guard.js.map +1 -1
  28. package/dist/index.d.ts +5 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +5 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/interfaces/jwt-payload-factory.interface.d.ts +1 -0
  33. package/dist/interfaces/jwt-payload-factory.interface.d.ts.map +1 -1
  34. package/dist/interfaces/realm-extractor.interface.d.ts +4 -0
  35. package/dist/interfaces/realm-extractor.interface.d.ts.map +1 -0
  36. package/dist/interfaces/realm-extractor.interface.js +3 -0
  37. package/dist/interfaces/realm-extractor.interface.js.map +1 -0
  38. package/dist/interfaces/user-repository.interface.d.ts +6 -5
  39. package/dist/interfaces/user-repository.interface.d.ts.map +1 -1
  40. package/dist/middleware/realm.middleware.d.ts +8 -0
  41. package/dist/middleware/realm.middleware.d.ts.map +1 -0
  42. package/dist/middleware/realm.middleware.js +41 -0
  43. package/dist/middleware/realm.middleware.js.map +1 -0
  44. package/dist/resolvers/base-auth.resolver.d.ts +12 -3
  45. package/dist/resolvers/base-auth.resolver.d.ts.map +1 -1
  46. package/dist/resolvers/base-auth.resolver.js +63 -74
  47. package/dist/resolvers/base-auth.resolver.js.map +1 -1
  48. package/dist/resolvers/oauth.controller.d.ts +1 -1
  49. package/dist/resolvers/oauth.controller.d.ts.map +1 -1
  50. package/dist/resolvers/oauth.controller.js +10 -6
  51. package/dist/resolvers/oauth.controller.js.map +1 -1
  52. package/dist/services/auth.service.d.ts +17 -13
  53. package/dist/services/auth.service.d.ts.map +1 -1
  54. package/dist/services/auth.service.js +70 -111
  55. package/dist/services/auth.service.js.map +1 -1
  56. package/dist/services/biometric-auth.service.d.ts +0 -1
  57. package/dist/services/biometric-auth.service.d.ts.map +1 -1
  58. package/dist/services/biometric-auth.service.js +0 -6
  59. package/dist/services/biometric-auth.service.js.map +1 -1
  60. package/dist/services/brute-force-protection.service.d.ts +4 -4
  61. package/dist/services/brute-force-protection.service.d.ts.map +1 -1
  62. package/dist/services/brute-force-protection.service.js +8 -8
  63. package/dist/services/brute-force-protection.service.js.map +1 -1
  64. package/dist/services/default-jwt-payload-factory.d.ts +1 -0
  65. package/dist/services/default-jwt-payload-factory.d.ts.map +1 -1
  66. package/dist/services/default-jwt-payload-factory.js +5 -1
  67. package/dist/services/default-jwt-payload-factory.js.map +1 -1
  68. package/dist/services/oauth-linking-token.service.d.ts.map +1 -1
  69. package/dist/services/oauth-linking-token.service.js +3 -8
  70. package/dist/services/oauth-linking-token.service.js.map +1 -1
  71. package/dist/services/verification.service.d.ts +9 -7
  72. package/dist/services/verification.service.d.ts.map +1 -1
  73. package/dist/services/verification.service.js +36 -131
  74. package/dist/services/verification.service.js.map +1 -1
  75. package/dist/strategies/api-key.strategy.d.ts +1 -1
  76. package/dist/strategies/api-key.strategy.d.ts.map +1 -1
  77. package/dist/strategies/api-key.strategy.js +3 -6
  78. package/dist/strategies/api-key.strategy.js.map +1 -1
  79. package/dist/strategies/jwt.strategy.d.ts +3 -1
  80. package/dist/strategies/jwt.strategy.d.ts.map +1 -1
  81. package/dist/strategies/jwt.strategy.js +10 -1
  82. package/dist/strategies/jwt.strategy.js.map +1 -1
  83. package/dist/utils/execution-context.d.ts +3 -0
  84. package/dist/utils/execution-context.d.ts.map +1 -0
  85. package/dist/utils/execution-context.js +12 -0
  86. package/dist/utils/execution-context.js.map +1 -0
  87. package/dist/utils/request-helpers.d.ts +2 -0
  88. package/dist/utils/request-helpers.d.ts.map +1 -0
  89. package/dist/utils/request-helpers.js +9 -0
  90. package/dist/utils/request-helpers.js.map +1 -0
  91. package/package.json +1 -1
@@ -28,121 +28,34 @@ let VerificationService = class VerificationService {
28
28
  this.expiryMinutes = 15;
29
29
  this.maxAttempts = 3;
30
30
  }
31
- async generateCode(identifier, type) {
32
- const user = type === 'email' || type === 'password-reset'
33
- ? await this.userRepository.findByEmail(identifier.toLowerCase())
34
- : await this.userRepository.findByPhoneNumber(identifier);
31
+ async generateCode(identifier, type, realm) {
32
+ const user = await this.resolveUser(identifier, type, realm);
35
33
  if (!user) {
36
34
  throw new common_1.BadRequestException('User not found');
37
35
  }
38
- const code = this.generateRandomCode();
39
- const hashedCode = this.hashCode(code);
40
- const expiresAt = new Date(Date.now() + this.expiryMinutes * 60 * 1000);
41
- const repositoryType = type === 'sms'
42
- ? verification_type_enum_1.VerificationType.PHONE
43
- : type === 'email'
44
- ? verification_type_enum_1.VerificationType.EMAIL
45
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
46
- await this.verificationRepository.storeVerificationCode(user.id, hashedCode, expiresAt, repositoryType);
47
- this.securityLogger.log(auth_logger_interface_1.SecurityEvent.VERIFICATION_CODE_SENT, {
48
- email: type === 'email' || type === 'password-reset' ? identifier : undefined,
49
- phoneNumber: type === 'sms' ? identifier : undefined,
50
- verificationType: type,
51
- });
52
- return code;
36
+ return this._generateAndStoreCode(user, type);
53
37
  }
54
- async validateCode(identifier, type, code) {
55
- const user = type === 'email' || type === 'password-reset'
56
- ? await this.userRepository.findByEmail(identifier.toLowerCase())
57
- : await this.userRepository.findByPhoneNumber(identifier);
38
+ async validateCode(identifier, type, code, realm) {
39
+ const user = await this.resolveUser(identifier, type, realm);
58
40
  if (!user) {
59
41
  throw new common_1.UnauthorizedException('User not found');
60
42
  }
61
- const repositoryType = type === 'sms'
62
- ? verification_type_enum_1.VerificationType.PHONE
63
- : type === 'email'
64
- ? verification_type_enum_1.VerificationType.EMAIL
65
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
66
- const entry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
67
- if (!entry) {
68
- throw new common_1.UnauthorizedException('Verification code not found or has expired');
69
- }
70
- if (new Date() > entry.expiresAt) {
71
- await this.verificationRepository.clearVerificationCode(user.id, repositoryType);
72
- this.securityLogger.log(auth_logger_interface_1.SecurityEvent.VERIFICATION_CODE_EXPIRED, {
73
- email: type === 'email' || type === 'password-reset' ? identifier : undefined,
74
- phoneNumber: type === 'sms' ? identifier : undefined,
75
- verificationType: type,
76
- });
77
- throw new common_1.UnauthorizedException('Verification code has expired');
78
- }
79
- if (entry.attempts >= this.maxAttempts) {
80
- await this.verificationRepository.clearVerificationCode(user.id, repositoryType);
81
- throw new common_1.UnauthorizedException('Too many failed attempts. Please request a new code.');
82
- }
83
- const hashedSubmittedCode = this.hashCode(code);
84
- const hashedSubmittedBuffer = Buffer.from(hashedSubmittedCode, 'hex');
85
- const storedBuffer = Buffer.from(entry.code, 'hex');
86
- let isValid = false;
87
- try {
88
- isValid = (0, crypto_1.timingSafeEqual)(hashedSubmittedBuffer, storedBuffer);
89
- }
90
- catch {
91
- isValid = false;
92
- }
93
- if (!isValid) {
94
- await this.verificationRepository.incrementVerificationAttempts(user.id, repositoryType);
95
- const updatedEntry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
96
- const attemptCount = updatedEntry?.attempts || entry.attempts + 1;
97
- this.securityLogger.log(auth_logger_interface_1.SecurityEvent.VERIFICATION_CODE_FAILED, {
98
- email: type === 'email' || type === 'password-reset' ? identifier : undefined,
99
- phoneNumber: type === 'sms' ? identifier : undefined,
100
- verificationType: type,
101
- attemptCount,
102
- });
103
- const remainingAttempts = this.maxAttempts - attemptCount;
104
- if (remainingAttempts > 0) {
105
- throw new common_1.UnauthorizedException(`Invalid verification code. ${remainingAttempts} attempt(s) remaining.`);
106
- }
107
- else {
108
- await this.verificationRepository.clearVerificationCode(user.id, repositoryType);
109
- throw new common_1.UnauthorizedException('Invalid verification code. Maximum attempts exceeded. Please request a new code.');
110
- }
111
- }
112
- await this.verificationRepository.clearVerificationCode(user.id, repositoryType);
113
- this.securityLogger.log(auth_logger_interface_1.SecurityEvent.VERIFICATION_CODE_VALIDATED, {
114
- email: type === 'email' || type === 'password-reset' ? identifier : undefined,
115
- phoneNumber: type === 'sms' ? identifier : undefined,
116
- verificationType: type,
117
- });
118
- return true;
43
+ return this._validateCodeInternal(user, type, code);
119
44
  }
120
- async invalidateCode(identifier, type) {
121
- const user = type === 'email' || type === 'password-reset'
122
- ? await this.userRepository.findByEmail(identifier.toLowerCase())
123
- : await this.userRepository.findByPhoneNumber(identifier);
45
+ async invalidateCode(identifier, type, realm) {
46
+ const user = await this.resolveUser(identifier, type, realm);
124
47
  if (!user) {
125
48
  return;
126
49
  }
127
- const repositoryType = type === 'sms'
128
- ? verification_type_enum_1.VerificationType.PHONE
129
- : type === 'email'
130
- ? verification_type_enum_1.VerificationType.EMAIL
131
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
50
+ const repositoryType = this.mapToRepositoryType(type);
132
51
  await this.verificationRepository.clearVerificationCode(user.id, repositoryType);
133
52
  }
134
- async hasActiveCode(identifier, type) {
135
- const user = type === 'email' || type === 'password-reset'
136
- ? await this.userRepository.findByEmail(identifier.toLowerCase())
137
- : await this.userRepository.findByPhoneNumber(identifier);
53
+ async hasActiveCode(identifier, type, realm) {
54
+ const user = await this.resolveUser(identifier, type, realm);
138
55
  if (!user) {
139
56
  return false;
140
57
  }
141
- const repositoryType = type === 'sms'
142
- ? verification_type_enum_1.VerificationType.PHONE
143
- : type === 'email'
144
- ? verification_type_enum_1.VerificationType.EMAIL
145
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
58
+ const repositoryType = this.mapToRepositoryType(type);
146
59
  const entry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
147
60
  return !!entry && new Date() <= entry.expiresAt;
148
61
  }
@@ -165,9 +78,7 @@ let VerificationService = class VerificationService {
165
78
  if (!user) {
166
79
  return false;
167
80
  }
168
- const repositoryType = type === 'sms'
169
- ? verification_type_enum_1.VerificationType.PHONE
170
- : verification_type_enum_1.VerificationType.EMAIL;
81
+ const repositoryType = this.mapToRepositoryType(type);
171
82
  const entry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
172
83
  return !!entry && new Date() <= entry.expiresAt;
173
84
  }
@@ -175,11 +86,7 @@ let VerificationService = class VerificationService {
175
86
  const code = this.generateRandomCode();
176
87
  const hashedCode = this.hashCode(code);
177
88
  const expiresAt = new Date(Date.now() + this.expiryMinutes * 60 * 1000);
178
- const repositoryType = type === 'sms'
179
- ? verification_type_enum_1.VerificationType.PHONE
180
- : type === 'email'
181
- ? verification_type_enum_1.VerificationType.EMAIL
182
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
89
+ const repositoryType = this.mapToRepositoryType(type);
183
90
  await this.verificationRepository.storeVerificationCode(user.id, hashedCode, expiresAt, repositoryType);
184
91
  this.securityLogger.log(auth_logger_interface_1.SecurityEvent.VERIFICATION_CODE_SENT, {
185
92
  email: type === 'email' || type === 'password-reset' ? user.email : undefined,
@@ -189,11 +96,7 @@ let VerificationService = class VerificationService {
189
96
  return code;
190
97
  }
191
98
  async _validateCodeInternal(user, type, code) {
192
- const repositoryType = type === 'sms'
193
- ? verification_type_enum_1.VerificationType.PHONE
194
- : type === 'email'
195
- ? verification_type_enum_1.VerificationType.EMAIL
196
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
99
+ const repositoryType = this.mapToRepositoryType(type);
197
100
  const entry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
198
101
  if (!entry) {
199
102
  throw new common_1.UnauthorizedException('Verification code not found or has expired');
@@ -258,22 +161,16 @@ let VerificationService = class VerificationService {
258
161
  hmac.update(code);
259
162
  return hmac.digest('hex');
260
163
  }
261
- async getCodeEntry(identifier, type) {
164
+ async getCodeEntry(identifier, type, realm) {
262
165
  const nodeEnv = this.options.nodeEnv || 'production';
263
166
  if (nodeEnv !== 'development') {
264
167
  throw new common_1.BadRequestException('Only available in development');
265
168
  }
266
- const user = type === 'email' || type === 'password-reset'
267
- ? await this.userRepository.findByEmail(identifier.toLowerCase())
268
- : await this.userRepository.findByPhoneNumber(identifier);
169
+ const user = await this.resolveUser(identifier, type, realm);
269
170
  if (!user) {
270
171
  return null;
271
172
  }
272
- const repositoryType = type === 'sms'
273
- ? verification_type_enum_1.VerificationType.PHONE
274
- : type === 'email'
275
- ? verification_type_enum_1.VerificationType.EMAIL
276
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
173
+ const repositoryType = this.mapToRepositoryType(type);
277
174
  const entry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
278
175
  if (!entry) {
279
176
  return null;
@@ -287,8 +184,8 @@ let VerificationService = class VerificationService {
287
184
  get verificationMode() {
288
185
  return this.options.features?.verificationMode ?? 'code';
289
186
  }
290
- async generateToken(identifier, type) {
291
- const user = await this.userRepository.findByEmail(identifier.toLowerCase());
187
+ async generateToken(identifier, type, realm) {
188
+ const user = await this.resolveUser(identifier, type, realm);
292
189
  if (!user) {
293
190
  throw new common_1.BadRequestException('User not found');
294
191
  }
@@ -297,9 +194,7 @@ let VerificationService = class VerificationService {
297
194
  const rawToken = (0, crypto_1.randomBytes)(tokenLength).toString('hex');
298
195
  const tokenHash = this.hashToken(rawToken);
299
196
  const expiresAt = new Date(Date.now() + expiryMinutes * 60 * 1000);
300
- const repositoryType = type === 'email'
301
- ? verification_type_enum_1.VerificationType.EMAIL
302
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
197
+ const repositoryType = this.mapToRepositoryType(type);
303
198
  await this.verificationRepository.storeVerificationCode(user.id, tokenHash, expiresAt, repositoryType);
304
199
  this.securityLogger.log(auth_logger_interface_1.SecurityEvent.VERIFICATION_CODE_SENT, {
305
200
  email: identifier,
@@ -307,14 +202,12 @@ let VerificationService = class VerificationService {
307
202
  });
308
203
  return rawToken;
309
204
  }
310
- async verifyToken(identifier, type, token) {
311
- const user = await this.userRepository.findByEmail(identifier.toLowerCase());
205
+ async verifyToken(identifier, type, token, realm) {
206
+ const user = await this.resolveUser(identifier, type, realm);
312
207
  if (!user) {
313
208
  throw new common_1.UnauthorizedException('User not found');
314
209
  }
315
- const repositoryType = type === 'email'
316
- ? verification_type_enum_1.VerificationType.EMAIL
317
- : verification_type_enum_1.VerificationType.PASSWORD_RESET;
210
+ const repositoryType = this.mapToRepositoryType(type);
318
211
  const entry = await this.verificationRepository.getVerificationCode(user.id, repositoryType);
319
212
  if (!entry) {
320
213
  throw new common_1.UnauthorizedException('Verification token not found or has expired');
@@ -367,6 +260,18 @@ let VerificationService = class VerificationService {
367
260
  hashToken(token) {
368
261
  return (0, crypto_1.createHash)('sha256').update(token).digest('hex');
369
262
  }
263
+ async resolveUser(identifier, type, realm) {
264
+ return type === 'email' || type === 'password-reset'
265
+ ? this.userRepository.findByEmail(identifier.toLowerCase(), realm)
266
+ : this.userRepository.findByPhoneNumber(identifier, realm);
267
+ }
268
+ mapToRepositoryType(type) {
269
+ switch (type) {
270
+ case 'sms': return verification_type_enum_1.VerificationType.PHONE;
271
+ case 'email': return verification_type_enum_1.VerificationType.EMAIL;
272
+ case 'password-reset': return verification_type_enum_1.VerificationType.PASSWORD_RESET;
273
+ }
274
+ }
370
275
  };
371
276
  exports.VerificationService = VerificationService;
372
277
  exports.VerificationService = VerificationService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"verification.service.js","sourceRoot":"","sources":["../../src/services/verification.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.service.js","sourceRoot":"","sources":["../../src/services/verification.service.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export declare class ApiKeyStrategy extends ApiKeyStrategy_base {
5
5
  private readonly apiKeyRepository?;
6
6
  private readonly logger;
7
7
  constructor(apiKeyRepository?: IApiKeyRepository | undefined);
8
- validate(req: Record<string, any>): Promise<IApiKeyAccount>;
8
+ validate(req: Record<string, any>): Promise<IApiKeyAccount | null>;
9
9
  }
10
10
  export {};
11
11
  //# sourceMappingURL=api-key.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/api-key.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;;AAc/F,qBACa,cAAe,SAAQ,mBAAqC;IAMrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IALpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAKvC,gBAAgB,CAAC,EAAE,iBAAiB,YAAA;IAoBjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAwClE"}
1
+ {"version":3,"file":"api-key.strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/api-key.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;;AAc/F,qBACa,cAAe,SAAQ,mBAAqC;IAMrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IALpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAKvC,gBAAgB,CAAC,EAAE,iBAAiB,YAAA;IAyBjD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAwCzE"}
@@ -32,15 +32,12 @@ let ApiKeyStrategy = ApiKeyStrategy_1 = class ApiKeyStrategy extends (0, passpor
32
32
  }
33
33
  async validate(req) {
34
34
  const authHeader = req.headers?.authorization ?? req.headers?.Authorization;
35
- if (!authHeader) {
36
- throw new common_1.UnauthorizedException('Missing authorization header');
37
- }
38
- if (!authHeader.startsWith('Bearer ')) {
39
- throw new common_1.UnauthorizedException('Invalid authorization format');
35
+ if (!authHeader || !authHeader.startsWith('Bearer ')) {
36
+ return null;
40
37
  }
41
38
  const token = authHeader.slice(7);
42
39
  if (!token) {
43
- throw new common_1.UnauthorizedException('Missing API key');
40
+ return null;
44
41
  }
45
42
  if (!this.apiKeyRepository) {
46
43
  throw new common_1.UnauthorizedException('API key authentication not configured');
@@ -1 +1 @@
1
- {"version":3,"file":"api-key.strategy.js","sourceRoot":"","sources":["../../src/strategies/api-key.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA6F;AAC7F,+CAAoD;AACpD,qDAA2C;AAC3C,mCAAoC;AAEpC,4CAAkD;AAc3C,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,IAAA,2BAAgB,EAAC,0BAAQ,EAAE,SAAS,CAAC;IAGvE,YAGE,gBAAqD;QAErD,KAAK,EAAE,CAAC;QAFS,qBAAgB,GAAhB,gBAAgB,CAAoB;QALtC,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;QASxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,4DAA4D;gBAC5D,mDAAmD;gBACnD,0EAA0E,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IASD,KAAK,CAAC,QAAQ,CAAC,GAAwB;QAErC,MAAM,UAAU,GACd,GAAG,CAAC,OAAO,EAAE,aAAa,IAAI,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC;QAE3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,8BAAqB,CAAC,8BAA8B,CAAC,CAAC;QAClE,CAAC;QAGD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,8BAAqB,CAAC,8BAA8B,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC;QAGD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,8BAAqB,CAAC,uCAAuC,CAAC,CAAC;QAC3E,CAAC;QAGD,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAGjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAlEY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,8BAAkB,CAAC,CAAA;;GALlB,cAAc,CAkE1B"}
1
+ {"version":3,"file":"api-key.strategy.js","sourceRoot":"","sources":["../../src/strategies/api-key.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA6F;AAC7F,+CAAoD;AACpD,qDAA2C;AAC3C,mCAAoC;AAEpC,4CAAkD;AAc3C,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,IAAA,2BAAgB,EAAC,0BAAQ,EAAE,SAAS,CAAC;IAGvE,YAGE,gBAAqD;QAErD,KAAK,EAAE,CAAC;QAFS,qBAAgB,GAAhB,gBAAgB,CAAoB;QALtC,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;QASxD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,4DAA4D;gBAC5D,mDAAmD;gBACnD,0EAA0E,CAC3E,CAAC;QACJ,CAAC;IACH,CAAC;IAcD,KAAK,CAAC,QAAQ,CAAC,GAAwB;QAErC,MAAM,UAAU,GACd,GAAG,CAAC,OAAO,EAAE,aAAa,IAAI,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC;QAI3D,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAMD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,8BAAqB,CAAC,uCAAuC,CAAC,CAAC;QAC3E,CAAC;QAGD,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAGjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAEnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,8BAAqB,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,IAAI,8BAAqB,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAvEY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAKR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,8BAAkB,CAAC,CAAA;;GALlB,cAAc,CAuE1B"}
@@ -1,4 +1,5 @@
1
1
  import { Strategy } from 'passport-jwt';
2
+ import type { Request } from 'express';
2
3
  import { AuthService } from '../services/auth.service';
3
4
  import { JwtPayload } from '../dto/jwt-payload.interface';
4
5
  import { IAuthUser } from '../interfaces/auth-user.interface';
@@ -10,8 +11,9 @@ export declare class JwtStrategy extends JwtStrategy_base {
10
11
  private authService;
11
12
  private readonly jwtValidation;
12
13
  private readonly jwtPayloadFactory;
14
+ private readonly realmsEnabled;
13
15
  constructor(options: AuthModuleOptions, authService: AuthService, jwtPayloadFactory?: IJwtPayloadFactory);
14
- validate(payload: JwtPayload): Promise<IAuthUser | JwtPayloadUser>;
16
+ validate(req: Request, payload: JwtPayload): Promise<IAuthUser | JwtPayloadUser>;
15
17
  }
16
18
  export {};
17
19
  //# sourceMappingURL=jwt.strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;;AAelE,qBACa,WAAY,SAAQ,gBAA0B;IAMvD,OAAO,CAAC,WAAW;IALrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;gBAGxB,OAAO,EAAE,iBAAiB,EAC/C,WAAW,EAAE,WAAW,EAGhC,iBAAiB,CAAC,EAAE,kBAAkB;IA4BlC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC;CAwBzE"}
1
+ {"version":3,"file":"jwt.strategy.d.ts","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAGjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;;AAelE,qBACa,WAAY,SAAQ,gBAA0B;IAOvD,OAAO,CAAC,WAAW;IANrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAGT,OAAO,EAAE,iBAAiB,EAC/C,WAAW,EAAE,WAAW,EAGhC,iBAAiB,CAAC,EAAE,kBAAkB;IA8BlC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC;CAiCvF"}
@@ -42,12 +42,21 @@ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(pas
42
42
  jwtFromRequest: jwtExtractor,
43
43
  ignoreExpiration: false,
44
44
  secretOrKey: options.jwtSecret,
45
+ passReqToCallback: true,
45
46
  });
46
47
  this.authService = authService;
47
48
  this.jwtValidation = options.jwtValidation || 'full';
48
49
  this.jwtPayloadFactory = jwtPayloadFactory || new default_jwt_payload_factory_1.DefaultJwtPayloadFactory();
50
+ this.realmsEnabled = !!options.realmExtractorInstance;
49
51
  }
50
- async validate(payload) {
52
+ async validate(req, payload) {
53
+ if (this.realmsEnabled) {
54
+ const requestRealm = req._realm;
55
+ const tokenRealm = payload.realm;
56
+ if (!tokenRealm || tokenRealm !== requestRealm) {
57
+ throw new common_1.UnauthorizedException('Invalid token');
58
+ }
59
+ }
51
60
  const userId = this.jwtPayloadFactory.extractUserId(payload);
52
61
  if (this.jwtValidation === 'payload-only') {
53
62
  return { id: userId, email: payload.email };
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,+CAAoD;AACpD,+CAAoD;AAEpD,2DAAuD;AAIvD,yFAAmF;AACnF,4CAAwE;AAQxE,SAAS,UAAU,CAAC,UAAkB;IACpC,OAAO,CAAC,GAAY,EAAiB,EAAE;QACrC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,IAAA,2BAAgB,EAAC,uBAAQ,CAAC;IAIzD,YAC+B,OAA0B,EAC/C,WAAwB,EAGhC,iBAAsC;QAEtC,MAAM,eAAe,GAAG,yBAAU,CAAC,2BAA2B,EAAE,CAAC;QAIjE,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;QAChE,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,eAAe,IAAI,cAAc,CAAC;QAGzE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,aAAa;YAC9C,CAAC,CAAC,UAAU,cAAc,EAAE;YAC5B,CAAC,CAAC,cAAc,CAAC;QAEnB,MAAM,YAAY,GAAG,iBAAiB;YACpC,CAAC,CAAC,yBAAU,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC;YACtE,CAAC,CAAC,eAAe,CAAC;QAEpB,KAAK,CAAC;YACJ,cAAc,EAAE,YAAY;YAC5B,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC,CAAC;QAzBK,gBAAW,GAAX,WAAW,CAAa;QA2BhC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,IAAI,IAAI,sDAAwB,EAAE,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAmB;QAIhC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,aAAa,KAAK,cAAc,EAAE,CAAC;YAI1C,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,CAAC;QAKD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA7DY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAMR,WAAA,IAAA,eAAM,EAAC,+BAAmB,CAAC,CAAA;IAE3B,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,+BAAmB,CAAC,CAAA;6CAFP,0BAAW;GANvB,WAAW,CA6DvB"}
1
+ {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ExecutionContext } from '@nestjs/common';
2
+ export declare function getRequestFromContext(context: ExecutionContext): Record<string, any>;
3
+ //# sourceMappingURL=execution-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/utils/execution-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOlD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAMpF"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRequestFromContext = getRequestFromContext;
4
+ const graphql_1 = require("@nestjs/graphql");
5
+ function getRequestFromContext(context) {
6
+ const contextType = context.getType();
7
+ if (contextType === 'graphql') {
8
+ return graphql_1.GqlExecutionContext.create(context).getContext().req;
9
+ }
10
+ return context.switchToHttp().getRequest();
11
+ }
12
+ //# sourceMappingURL=execution-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-context.js","sourceRoot":"","sources":["../../src/utils/execution-context.ts"],"names":[],"mappings":";;AAOA,sDAMC;AAZD,6CAAsD;AAMtD,SAAgB,qBAAqB,CAAC,OAAyB;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAU,CAAC;IAC9C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC;IAC9D,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function extractIpAddress(request: Record<string, unknown> | undefined): string;
2
+ //# sourceMappingURL=request-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/request-helpers.ts"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAGrF"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractIpAddress = extractIpAddress;
4
+ function extractIpAddress(request) {
5
+ if (!request)
6
+ return 'unknown';
7
+ return request.clientIp || request.ip || 'unknown';
8
+ }
9
+ //# sourceMappingURL=request-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-helpers.js","sourceRoot":"","sources":["../../src/utils/request-helpers.ts"],"names":[],"mappings":";;AAOA,4CAGC;AAHD,SAAgB,gBAAgB,CAAC,OAA4C;IAC3E,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,OAAQ,OAAO,CAAC,QAAmB,IAAK,OAAO,CAAC,EAAa,IAAI,SAAS,CAAC;AAC7E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ambushsoftworks/nestjs-auth-graphql",
3
- "version": "0.6.5",
3
+ "version": "0.7.2",
4
4
  "description": "Production-grade authentication package for NestJS with GraphQL, supporting JWT, OAuth, email/SMS verification, and biometric auth",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",