@ambushsoftworks/nestjs-auth-graphql 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +81 -4
  3. package/dist/auth.module.d.ts +5 -0
  4. package/dist/auth.module.d.ts.map +1 -1
  5. package/dist/auth.module.js +47 -0
  6. package/dist/auth.module.js.map +1 -1
  7. package/dist/guards/create-auth-guard.d.ts.map +1 -1
  8. package/dist/guards/create-auth-guard.js +3 -6
  9. package/dist/guards/create-auth-guard.js.map +1 -1
  10. package/dist/guards/csrf.guard.d.ts +2 -0
  11. package/dist/guards/csrf.guard.d.ts.map +1 -1
  12. package/dist/guards/csrf.guard.js +26 -5
  13. package/dist/guards/csrf.guard.js.map +1 -1
  14. package/dist/guards/jwt-auth.guard.d.ts +2 -1
  15. package/dist/guards/jwt-auth.guard.d.ts.map +1 -1
  16. package/dist/guards/jwt-auth.guard.js +4 -0
  17. package/dist/guards/jwt-auth.guard.js.map +1 -1
  18. package/dist/guards/permission.guard.js +2 -2
  19. package/dist/guards/permission.guard.js.map +1 -1
  20. package/dist/guards/tenant.guard.d.ts.map +1 -1
  21. package/dist/guards/tenant.guard.js +3 -0
  22. package/dist/guards/tenant.guard.js.map +1 -1
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/interfaces/refresh-retry-cache.interface.d.ts +6 -0
  28. package/dist/interfaces/refresh-retry-cache.interface.d.ts.map +1 -0
  29. package/dist/interfaces/refresh-retry-cache.interface.js +3 -0
  30. package/dist/interfaces/refresh-retry-cache.interface.js.map +1 -0
  31. package/dist/middleware/realm.middleware.d.ts +4 -2
  32. package/dist/middleware/realm.middleware.d.ts.map +1 -1
  33. package/dist/middleware/realm.middleware.js +50 -34
  34. package/dist/middleware/realm.middleware.js.map +1 -1
  35. package/dist/services/auth.service.d.ts +1 -3
  36. package/dist/services/auth.service.d.ts.map +1 -1
  37. package/dist/services/auth.service.js +12 -10
  38. package/dist/services/auth.service.js.map +1 -1
  39. package/dist/services/in-memory-refresh-retry-cache.d.ts +11 -0
  40. package/dist/services/in-memory-refresh-retry-cache.d.ts.map +1 -0
  41. package/dist/services/in-memory-refresh-retry-cache.js +45 -0
  42. package/dist/services/in-memory-refresh-retry-cache.js.map +1 -0
  43. package/dist/services/refresh-token.service.d.ts +13 -14
  44. package/dist/services/refresh-token.service.d.ts.map +1 -1
  45. package/dist/services/refresh-token.service.js +112 -33
  46. package/dist/services/refresh-token.service.js.map +1 -1
  47. package/dist/strategies/jwt.strategy.d.ts +3 -1
  48. package/dist/strategies/jwt.strategy.d.ts.map +1 -1
  49. package/dist/strategies/jwt.strategy.js +15 -11
  50. package/dist/strategies/jwt.strategy.js.map +1 -1
  51. package/dist/test-utils/execution-contexts.d.ts +7 -0
  52. package/dist/test-utils/execution-contexts.d.ts.map +1 -0
  53. package/dist/test-utils/execution-contexts.js +41 -0
  54. package/dist/test-utils/execution-contexts.js.map +1 -0
  55. package/dist/utils/cookies.d.ts +2 -0
  56. package/dist/utils/cookies.d.ts.map +1 -0
  57. package/dist/utils/cookies.js +34 -0
  58. package/dist/utils/cookies.js.map +1 -0
  59. package/dist/utils/execution-context.d.ts +3 -1
  60. package/dist/utils/execution-context.d.ts.map +1 -1
  61. package/dist/utils/execution-context.js +39 -4
  62. package/dist/utils/execution-context.js.map +1 -1
  63. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { IRefreshRetryCache } from '../interfaces/refresh-retry-cache.interface';
2
+ export declare class InMemoryRefreshRetryCache implements IRefreshRetryCache {
3
+ private readonly entries;
4
+ private lastSweepAt;
5
+ get(key: string): Promise<string | null>;
6
+ set(key: string, value: string, ttlMs: number): Promise<void>;
7
+ delete(key: string): Promise<void>;
8
+ get size(): number;
9
+ private sweep;
10
+ }
11
+ //# sourceMappingURL=in-memory-refresh-retry-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-refresh-retry-cache.d.ts","sourceRoot":"","sources":["../../src/services/in-memory-refresh-retry-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AAgBjF,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2D;IACnF,OAAO,CAAC,WAAW,CAAc;IAE3B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,KAAK;CAYd"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InMemoryRefreshRetryCache = void 0;
4
+ const SWEEP_INTERVAL_MS = 60 * 1000;
5
+ class InMemoryRefreshRetryCache {
6
+ constructor() {
7
+ this.entries = new Map();
8
+ this.lastSweepAt = Date.now();
9
+ }
10
+ async get(key) {
11
+ const entry = this.entries.get(key);
12
+ if (!entry) {
13
+ return null;
14
+ }
15
+ if (entry.expiresAt <= Date.now()) {
16
+ this.entries.delete(key);
17
+ return null;
18
+ }
19
+ return entry.value;
20
+ }
21
+ async set(key, value, ttlMs) {
22
+ this.sweep();
23
+ this.entries.set(key, { value, expiresAt: Date.now() + ttlMs });
24
+ }
25
+ async delete(key) {
26
+ this.entries.delete(key);
27
+ }
28
+ get size() {
29
+ return this.entries.size;
30
+ }
31
+ sweep() {
32
+ const now = Date.now();
33
+ if (now - this.lastSweepAt < SWEEP_INTERVAL_MS) {
34
+ return;
35
+ }
36
+ this.lastSweepAt = now;
37
+ for (const [key, entry] of this.entries) {
38
+ if (entry.expiresAt <= now) {
39
+ this.entries.delete(key);
40
+ }
41
+ }
42
+ }
43
+ }
44
+ exports.InMemoryRefreshRetryCache = InMemoryRefreshRetryCache;
45
+ //# sourceMappingURL=in-memory-refresh-retry-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-refresh-retry-cache.js","sourceRoot":"","sources":["../../src/services/in-memory-refresh-retry-cache.ts"],"names":[],"mappings":";;;AAGA,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AAapC,MAAa,yBAAyB;IAAtC;QACmB,YAAO,GAAG,IAAI,GAAG,EAAgD,CAAC;QAC3E,gBAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAwCnC,CAAC;IAtCC,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,KAAa;QACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAGD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEO,KAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,iBAAiB,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA1CD,8DA0CC"}
@@ -1,21 +1,20 @@
1
- import { OnModuleDestroy } from '@nestjs/common';
2
1
  import type { AuthModuleOptions } from '../auth.module';
3
- interface RefreshCacheEntry {
2
+ export declare const DEFAULT_REFRESH_GRACE_PERIOD_SECONDS = 10;
3
+ export interface RefreshRetryResult {
4
+ userId: string;
4
5
  accessToken: string;
5
6
  refreshToken: string;
6
- refreshTokenHash: string;
7
- expiresAt: Date;
8
7
  }
9
- export declare class RefreshTokenService implements OnModuleDestroy {
8
+ export declare class RefreshTokenService {
10
9
  private options;
10
+ private readonly logger;
11
11
  private readonly tokenLength;
12
12
  private readonly expiryDays;
13
- private readonly gracePeriodSeconds;
14
- private readonly refreshCache;
15
- private cleanupIntervalId?;
13
+ private readonly gracePeriodMs;
14
+ private readonly retryCache;
15
+ private readonly retryEntryKey?;
16
16
  constructor(options: AuthModuleOptions);
17
17
  private static parseExpiryDays;
18
- onModuleDestroy(): void;
19
18
  generateToken(): {
20
19
  token: string;
21
20
  hash: string;
@@ -24,10 +23,10 @@ export declare class RefreshTokenService implements OnModuleDestroy {
24
23
  validateToken(token: string, storedHash: string): boolean;
25
24
  isTokenExpired(createdAt: Date): boolean;
26
25
  getExpiryDate(): Date;
27
- cacheRefreshResult(oldTokenHash: string, accessToken: string, refreshToken: string, refreshTokenHash: string): void;
28
- getCachedRefreshResult(tokenHash: string): RefreshCacheEntry | null;
29
- invalidateCachedRefresh(tokenHash: string): void;
30
- private cleanupExpiredCache;
26
+ cacheRefreshResult(usedTokenHash: string, result: RefreshRetryResult): Promise<void>;
27
+ getCachedRefreshResult(usedTokenHash: string): Promise<RefreshRetryResult | null>;
28
+ invalidateCachedRefresh(usedTokenHash: string): Promise<void>;
29
+ private seal;
30
+ private open;
31
31
  }
32
- export {};
33
32
  //# sourceMappingURL=refresh-token.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-token.service.d.ts","sourceRoot":"","sources":["../../src/services/refresh-token.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKxD,UAAU,iBAAiB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;CACjB;AAyBD,qBACa,mBAAoB,YAAW,eAAe;IAY1B,OAAO,CAAC,OAAO;IAX9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAM;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAGzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IAGrE,OAAO,CAAC,iBAAiB,CAAC,CAAiB;gBAGJ,OAAO,EAAE,iBAAiB;IAyBjE,OAAO,CAAC,MAAM,CAAC,eAAe;IAgB9B,eAAe;IAWf,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAgBhD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAiBhC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAoCzD,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAWxC,aAAa,IAAI,IAAI;IAerB,kBAAkB,CAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,IAAI;IAkBP,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAsBnE,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQhD,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"refresh-token.service.d.ts","sourceRoot":"","sources":["../../src/services/refresh-token.service.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD,eAAO,MAAM,oCAAoC,KAAK,CAAC;AAWvD,MAAM,WAAW,kBAAkB;IAEjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AA6BD,qBACa,mBAAmB;IAcC,OAAO,CAAC,OAAO;IAb9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAM;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAMhD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;gBAGD,OAAO,EAAE,iBAAiB;IAgCjE,OAAO,CAAC,MAAM,CAAC,eAAe;IAgB9B,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAgBhD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAiBhC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;IAoCzD,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAWxC,aAAa,IAAI,IAAI;IAYf,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BpF,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA+CjF,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,IAAI;CAwBb"}
@@ -13,19 +13,33 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  };
14
14
  var RefreshTokenService_1;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.RefreshTokenService = void 0;
16
+ exports.RefreshTokenService = exports.DEFAULT_REFRESH_GRACE_PERIOD_SECONDS = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
18
  const crypto_1 = require("crypto");
19
19
  const constants_1 = require("../constants");
20
+ const invalid_auth_config_exception_1 = require("../exceptions/invalid-auth-config.exception");
21
+ const in_memory_refresh_retry_cache_1 = require("./in-memory-refresh-retry-cache");
22
+ exports.DEFAULT_REFRESH_GRACE_PERIOD_SECONDS = 10;
23
+ const RETRY_KEY_PREFIX = 'auth:refreshRetry:';
24
+ const SEALED_ENTRY_VERSION = 'v1';
25
+ const GCM_IV_BYTES = 12;
26
+ const GCM_TAG_BYTES = 16;
20
27
  let RefreshTokenService = RefreshTokenService_1 = class RefreshTokenService {
21
28
  constructor(options) {
22
29
  this.options = options;
30
+ this.logger = new common_1.Logger(RefreshTokenService_1.name);
23
31
  this.tokenLength = 32;
24
- this.gracePeriodSeconds = 10;
25
- this.refreshCache = new Map();
26
32
  this.expiryDays = RefreshTokenService_1.parseExpiryDays(options.refreshTokenExpiresIn);
27
- this.cleanupIntervalId = setInterval(() => this.cleanupExpiredCache(), 60 * 1000);
28
- this.cleanupIntervalId.unref?.();
33
+ this.gracePeriodMs =
34
+ (options.refreshGracePeriodSeconds ?? exports.DEFAULT_REFRESH_GRACE_PERIOD_SECONDS) * 1000;
35
+ this.retryCache = options.refreshRetryCacheInstance ?? new in_memory_refresh_retry_cache_1.InMemoryRefreshRetryCache();
36
+ if (this.gracePeriodMs > 0 && !(this.retryCache instanceof in_memory_refresh_retry_cache_1.InMemoryRefreshRetryCache)) {
37
+ if (!options.encryptionKey) {
38
+ throw new invalid_auth_config_exception_1.InvalidAuthConfigException('[RefreshTokenService] refreshRetryCacheInstance requires encryptionKey: retry cache ' +
39
+ 'entries hold live tokens and are encrypted before they reach the store.');
40
+ }
41
+ this.retryEntryKey = Buffer.from((0, crypto_1.hkdfSync)('sha256', options.encryptionKey, 'nestjs-auth-graphql', 'refresh-retry-cache/v1', 32));
42
+ }
29
43
  }
30
44
  static parseExpiryDays(value) {
31
45
  if (!value)
@@ -38,12 +52,6 @@ let RefreshTokenService = RefreshTokenService_1 = class RefreshTokenService {
38
52
  const num = parseInt(value, 10);
39
53
  return num > 0 ? num : 30;
40
54
  }
41
- onModuleDestroy() {
42
- if (this.cleanupIntervalId) {
43
- clearInterval(this.cleanupIntervalId);
44
- this.cleanupIntervalId = undefined;
45
- }
46
- }
47
55
  generateToken() {
48
56
  const tokenBuffer = (0, crypto_1.randomBytes)(this.tokenLength);
49
57
  const token = tokenBuffer.toString('base64url');
@@ -88,36 +96,104 @@ let RefreshTokenService = RefreshTokenService_1 = class RefreshTokenService {
88
96
  const expiryMs = this.expiryDays * 24 * 60 * 60 * 1000;
89
97
  return new Date(now.getTime() + expiryMs);
90
98
  }
91
- cacheRefreshResult(oldTokenHash, accessToken, refreshToken, refreshTokenHash) {
92
- const expiresAt = new Date(Date.now() + this.gracePeriodSeconds * 1000);
93
- this.refreshCache.set(oldTokenHash, {
94
- accessToken,
95
- refreshToken,
96
- refreshTokenHash,
97
- expiresAt,
98
- });
99
+ async cacheRefreshResult(usedTokenHash, result) {
100
+ if (this.gracePeriodMs === 0) {
101
+ return;
102
+ }
103
+ const key = RETRY_KEY_PREFIX + usedTokenHash;
104
+ const entry = {
105
+ userId: result.userId,
106
+ accessToken: result.accessToken,
107
+ refreshToken: result.refreshToken,
108
+ expiresAt: Date.now() + this.gracePeriodMs,
109
+ };
110
+ try {
111
+ await this.retryCache.set(key, this.seal(key, JSON.stringify(entry)), this.gracePeriodMs);
112
+ }
113
+ catch (err) {
114
+ this.logger.error(`Refresh retry cache write failed, so a retry of this refresh will be rejected: ${describeError(err)}`);
115
+ }
99
116
  }
100
- getCachedRefreshResult(tokenHash) {
101
- const entry = this.refreshCache.get(tokenHash);
102
- if (!entry) {
117
+ async getCachedRefreshResult(usedTokenHash) {
118
+ if (this.gracePeriodMs === 0) {
119
+ return null;
120
+ }
121
+ const key = RETRY_KEY_PREFIX + usedTokenHash;
122
+ let stored;
123
+ try {
124
+ stored = await this.retryCache.get(key);
125
+ }
126
+ catch (err) {
127
+ this.logger.error(`Refresh retry cache read failed; treating it as a miss: ${describeError(err)}`);
128
+ return null;
129
+ }
130
+ if (stored === null || stored === undefined) {
103
131
  return null;
104
132
  }
105
- if (new Date() > entry.expiresAt) {
106
- this.refreshCache.delete(tokenHash);
133
+ let entry;
134
+ try {
135
+ entry = JSON.parse(this.open(key, stored));
136
+ }
137
+ catch {
138
+ this.logger.error(this.retryEntryKey
139
+ ? 'A refresh retry cache entry failed to decrypt, so the retry is rejected. ' +
140
+ 'Every instance sharing the store must use the same encryptionKey.'
141
+ : 'A refresh retry cache entry could not be read, so the retry is rejected.');
107
142
  return null;
108
143
  }
109
- return entry;
144
+ if (typeof entry.userId !== 'string' ||
145
+ typeof entry.accessToken !== 'string' ||
146
+ typeof entry.refreshToken !== 'string' ||
147
+ typeof entry.expiresAt !== 'number' ||
148
+ entry.expiresAt <= Date.now()) {
149
+ return null;
150
+ }
151
+ return { userId: entry.userId, accessToken: entry.accessToken, refreshToken: entry.refreshToken };
110
152
  }
111
- invalidateCachedRefresh(tokenHash) {
112
- this.refreshCache.delete(tokenHash);
153
+ async invalidateCachedRefresh(usedTokenHash) {
154
+ try {
155
+ await this.retryCache.delete(RETRY_KEY_PREFIX + usedTokenHash);
156
+ }
157
+ catch (err) {
158
+ this.logger.error(`Refresh retry cache delete failed: ${describeError(err)}`);
159
+ }
113
160
  }
114
- cleanupExpiredCache() {
115
- const now = new Date();
116
- for (const [key, entry] of this.refreshCache.entries()) {
117
- if (now > entry.expiresAt) {
118
- this.refreshCache.delete(key);
119
- }
161
+ seal(key, plaintext) {
162
+ if (!this.retryEntryKey) {
163
+ return plaintext;
164
+ }
165
+ const iv = (0, crypto_1.randomBytes)(GCM_IV_BYTES);
166
+ const cipher = (0, crypto_1.createCipheriv)('aes-256-gcm', this.retryEntryKey, iv, { authTagLength: GCM_TAG_BYTES });
167
+ cipher.setAAD(Buffer.from(key, 'utf8'));
168
+ const ciphertext = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
169
+ return [
170
+ SEALED_ENTRY_VERSION,
171
+ iv.toString('base64url'),
172
+ cipher.getAuthTag().toString('base64url'),
173
+ ciphertext.toString('base64url'),
174
+ ].join('.');
175
+ }
176
+ open(key, sealed) {
177
+ if (!this.retryEntryKey) {
178
+ return sealed;
179
+ }
180
+ const [version, ivPart, tagPart, ciphertextPart, ...extra] = sealed.split('.');
181
+ const iv = Buffer.from(ivPart ?? '', 'base64url');
182
+ const tag = Buffer.from(tagPart ?? '', 'base64url');
183
+ if (version !== SEALED_ENTRY_VERSION ||
184
+ extra.length > 0 ||
185
+ ciphertextPart === undefined ||
186
+ iv.length !== GCM_IV_BYTES ||
187
+ tag.length !== GCM_TAG_BYTES) {
188
+ throw new Error('Unrecognised refresh retry cache entry');
120
189
  }
190
+ const decipher = (0, crypto_1.createDecipheriv)('aes-256-gcm', this.retryEntryKey, iv, { authTagLength: GCM_TAG_BYTES });
191
+ decipher.setAAD(Buffer.from(key, 'utf8'));
192
+ decipher.setAuthTag(tag);
193
+ return Buffer.concat([
194
+ decipher.update(Buffer.from(ciphertextPart, 'base64url')),
195
+ decipher.final(),
196
+ ]).toString('utf8');
121
197
  }
122
198
  };
123
199
  exports.RefreshTokenService = RefreshTokenService;
@@ -126,4 +202,7 @@ exports.RefreshTokenService = RefreshTokenService = RefreshTokenService_1 = __de
126
202
  __param(0, (0, common_1.Inject)(constants_1.AUTH_MODULE_OPTIONS)),
127
203
  __metadata("design:paramtypes", [Object])
128
204
  ], RefreshTokenService);
205
+ function describeError(err) {
206
+ return err instanceof Error ? err.message : String(err);
207
+ }
129
208
  //# sourceMappingURL=refresh-token.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-token.service.js","sourceRoot":"","sources":["../../src/services/refresh-token.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refresh-token.service.js","sourceRoot":"","sources":["../../src/services/refresh-token.service.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,11 @@ import type { JwtPayloadUser } from '../guards/create-auth-guard';
9
9
  declare const JwtStrategy_base: new (...args: any[]) => Strategy;
10
10
  export declare class JwtStrategy extends JwtStrategy_base {
11
11
  private authService;
12
+ private readonly logger;
12
13
  private readonly jwtValidation;
13
14
  private readonly jwtPayloadFactory;
14
- private readonly realmsEnabled;
15
+ private readonly realmExtractor?;
16
+ private readonly realmSkip;
15
17
  constructor(options: AuthModuleOptions, authService: AuthService, jwtPayloadFactory?: IJwtPayloadFactory);
16
18
  validate(req: Request, payload: JwtPayload): Promise<IAuthUser | JwtPayloadUser>;
17
19
  }
@@ -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;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"}
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;AAIjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;;AAalE,qBACa,WAAY,SAAQ,gBAA0B;IASvD,OAAO,CAAC,WAAW;IARrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;gBAG7C,OAAO,EAAE,iBAAiB,EAC/C,WAAW,EAAE,WAAW,EAGhC,iBAAiB,CAAC,EAAE,kBAAkB;IA+BlC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC;CA6CvF"}
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var JwtStrategy_1;
14
15
  Object.defineProperty(exports, "__esModule", { value: true });
15
16
  exports.JwtStrategy = void 0;
16
17
  const common_1 = require("@nestjs/common");
@@ -19,15 +20,12 @@ const passport_jwt_1 = require("passport-jwt");
19
20
  const auth_service_1 = require("../services/auth.service");
20
21
  const default_jwt_payload_factory_1 = require("../services/default-jwt-payload-factory");
21
22
  const constants_1 = require("../constants");
23
+ const cookies_1 = require("../utils/cookies");
24
+ const realm_middleware_1 = require("../middleware/realm.middleware");
22
25
  function fromCookie(cookieName) {
23
- return (req) => {
24
- if (req && req.cookies && req.cookies[cookieName]) {
25
- return req.cookies[cookieName];
26
- }
27
- return null;
28
- };
26
+ return (req) => (0, cookies_1.readCookie)(req, cookieName);
29
27
  }
30
- let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(passport_jwt_1.Strategy) {
28
+ let JwtStrategy = JwtStrategy_1 = class JwtStrategy extends (0, passport_1.PassportStrategy)(passport_jwt_1.Strategy) {
31
29
  constructor(options, authService, jwtPayloadFactory) {
32
30
  const bearerExtractor = passport_jwt_1.ExtractJwt.fromAuthHeaderAsBearerToken();
33
31
  const cookieAuthEnabled = options.features?.cookieAuth === true;
@@ -45,13 +43,19 @@ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(pas
45
43
  passReqToCallback: true,
46
44
  });
47
45
  this.authService = authService;
46
+ this.logger = new common_1.Logger(JwtStrategy_1.name);
48
47
  this.jwtValidation = options.jwtValidation || 'full';
49
48
  this.jwtPayloadFactory = jwtPayloadFactory || new default_jwt_payload_factory_1.DefaultJwtPayloadFactory();
50
- this.realmsEnabled = !!options.realmExtractorInstance;
49
+ this.realmExtractor = options.realmExtractorInstance;
50
+ this.realmSkip = options.realm?.skip;
51
51
  }
52
52
  async validate(req, payload) {
53
- if (this.realmsEnabled) {
54
- const requestRealm = req._realm;
53
+ if (this.realmExtractor) {
54
+ const request = req;
55
+ if (request._realm === undefined) {
56
+ await (0, realm_middleware_1.resolveRealm)(request, this.realmExtractor, this.realmSkip, this.logger);
57
+ }
58
+ const requestRealm = request._realm;
55
59
  const tokenRealm = payload.realm;
56
60
  if (!tokenRealm || tokenRealm !== requestRealm) {
57
61
  throw new common_1.UnauthorizedException('Invalid token');
@@ -69,7 +73,7 @@ let JwtStrategy = class JwtStrategy extends (0, passport_1.PassportStrategy)(pas
69
73
  }
70
74
  };
71
75
  exports.JwtStrategy = JwtStrategy;
72
- exports.JwtStrategy = JwtStrategy = __decorate([
76
+ exports.JwtStrategy = JwtStrategy = JwtStrategy_1 = __decorate([
73
77
  (0, common_1.Injectable)(),
74
78
  __param(0, (0, common_1.Inject)(constants_1.AUTH_MODULE_OPTIONS)),
75
79
  __param(2, (0, common_1.Optional)()),
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt.strategy.js","sourceRoot":"","sources":["../../src/strategies/jwt.strategy.ts"],"names":[],"mappings":"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"}