@wazobiatech/auth-middleware 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +986 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/middlewares/express.helper.d.ts +4 -0
- package/dist/middlewares/express.helper.d.ts.map +1 -0
- package/dist/middlewares/express.helper.js +31 -0
- package/dist/middlewares/express.helper.js.map +1 -0
- package/dist/middlewares/gql.helper.d.ts +14 -0
- package/dist/middlewares/gql.helper.d.ts.map +1 -0
- package/dist/middlewares/gql.helper.js +82 -0
- package/dist/middlewares/gql.helper.js.map +1 -0
- package/dist/middlewares/index.d.ts +5 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +13 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/jwt.guard.d.ts +16 -0
- package/dist/middlewares/jwt.guard.d.ts.map +1 -0
- package/dist/middlewares/jwt.guard.js +336 -0
- package/dist/middlewares/jwt.guard.js.map +1 -0
- package/dist/middlewares/project.guard.d.ts +49 -0
- package/dist/middlewares/project.guard.d.ts.map +1 -0
- package/dist/middlewares/project.guard.js +310 -0
- package/dist/middlewares/project.guard.js.map +1 -0
- package/dist/nestjs/decorators/auth.decorator.d.ts +2 -0
- package/dist/nestjs/decorators/auth.decorator.d.ts.map +1 -0
- package/dist/nestjs/decorators/auth.decorator.js +10 -0
- package/dist/nestjs/decorators/auth.decorator.js.map +1 -0
- package/dist/nestjs/decorators/current-user.decorator.d.ts +2 -0
- package/dist/nestjs/decorators/current-user.decorator.d.ts.map +1 -0
- package/dist/nestjs/decorators/current-user.decorator.js +18 -0
- package/dist/nestjs/decorators/current-user.decorator.js.map +1 -0
- package/dist/nestjs/guards/jwt-guard.d.ts +8 -0
- package/dist/nestjs/guards/jwt-guard.d.ts.map +1 -0
- package/dist/nestjs/guards/jwt-guard.js +23 -0
- package/dist/nestjs/guards/jwt-guard.js.map +1 -0
- package/dist/nestjs/guards/project.guard.d.ts +45 -0
- package/dist/nestjs/guards/project.guard.d.ts.map +1 -0
- package/dist/nestjs/guards/project.guard.js +352 -0
- package/dist/nestjs/guards/project.guard.js.map +1 -0
- package/dist/nestjs/index.d.ts +6 -0
- package/dist/nestjs/index.d.ts.map +1 -0
- package/dist/nestjs/index.js +14 -0
- package/dist/nestjs/index.js.map +1 -0
- package/dist/nestjs/jwt-auth.module.d.ts +3 -0
- package/dist/nestjs/jwt-auth.module.d.ts.map +1 -0
- package/dist/nestjs/jwt-auth.module.js +25 -0
- package/dist/nestjs/jwt-auth.module.js.map +1 -0
- package/dist/nestjs/strategies/jwt-strategy.d.ts +23 -0
- package/dist/nestjs/strategies/jwt-strategy.d.ts.map +1 -0
- package/dist/nestjs/strategies/jwt-strategy.js +381 -0
- package/dist/nestjs/strategies/jwt-strategy.js.map +1 -0
- package/dist/test/middleware.test.d.ts +2 -0
- package/dist/test/middleware.test.d.ts.map +1 -0
- package/dist/test/middleware.test.js +383 -0
- package/dist/test/middleware.test.js.map +1 -0
- package/dist/types/jwt-payload.d.ts +48 -0
- package/dist/types/jwt-payload.d.ts.map +1 -0
- package/dist/types/jwt-payload.js +3 -0
- package/dist/types/jwt-payload.js.map +1 -0
- package/dist/utils/redis.connection.d.ts +9 -0
- package/dist/utils/redis.connection.d.ts.map +1 -0
- package/dist/utils/redis.connection.js +27 -0
- package/dist/utils/redis.connection.js.map +1 -0
- package/package.json +99 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
45
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
|
+
};
|
|
47
|
+
var ProjectAuthGuard_1;
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.ProjectAuthGuard = void 0;
|
|
50
|
+
const common_1 = require("@nestjs/common");
|
|
51
|
+
const jwt = __importStar(require("jsonwebtoken"));
|
|
52
|
+
const axios_1 = __importDefault(require("axios"));
|
|
53
|
+
const jose = __importStar(require("node-jose"));
|
|
54
|
+
const crypto = __importStar(require("crypto"));
|
|
55
|
+
const redis_connection_1 = __importDefault(require("../../utils/redis.connection"));
|
|
56
|
+
let ProjectAuthGuard = ProjectAuthGuard_1 = class ProjectAuthGuard {
|
|
57
|
+
constructor() {
|
|
58
|
+
this.logger = new common_1.Logger(ProjectAuthGuard_1.name);
|
|
59
|
+
this.jwksCacheKey = 'project_jwks_cache';
|
|
60
|
+
this.jwksCacheTTL = 18000; // 5 hours in seconds
|
|
61
|
+
}
|
|
62
|
+
async canActivate(context) {
|
|
63
|
+
try {
|
|
64
|
+
// Handle both HTTP and GraphQL contexts
|
|
65
|
+
const request = this.getRequest(context);
|
|
66
|
+
if (!request || !request.headers) {
|
|
67
|
+
this.logger.error('Request or headers not available');
|
|
68
|
+
throw new common_1.UnauthorizedException('Request context not available');
|
|
69
|
+
}
|
|
70
|
+
// Extract project token from header
|
|
71
|
+
const authHeader = request.headers['x-project-token'];
|
|
72
|
+
if (!authHeader) {
|
|
73
|
+
this.logger.warn('Missing x-project-token header');
|
|
74
|
+
this.logger.debug('Available headers:', Object.keys(request.headers));
|
|
75
|
+
throw new common_1.UnauthorizedException('Missing project token header (x-project-token)');
|
|
76
|
+
}
|
|
77
|
+
// Handle Bearer prefix
|
|
78
|
+
const token = authHeader.startsWith('Bearer ')
|
|
79
|
+
? authHeader.slice(7)
|
|
80
|
+
: authHeader;
|
|
81
|
+
if (!token) {
|
|
82
|
+
this.logger.warn('Empty project token after extraction');
|
|
83
|
+
throw new common_1.UnauthorizedException('Empty project token');
|
|
84
|
+
}
|
|
85
|
+
// Validate project token using cached JWKS
|
|
86
|
+
const validation = await this.validateProjectToken(token);
|
|
87
|
+
if (!validation.isValid) {
|
|
88
|
+
this.logger.warn(`Token validation failed: ${validation.error}`);
|
|
89
|
+
throw new common_1.UnauthorizedException(`Invalid project token: ${validation.error}`);
|
|
90
|
+
}
|
|
91
|
+
// Check if current service is enabled
|
|
92
|
+
const serviceId = process.env.SERVICE_ID;
|
|
93
|
+
if (!serviceId) {
|
|
94
|
+
this.logger.error('SERVICE_ID environment variable not configured');
|
|
95
|
+
throw new common_1.UnauthorizedException('Service ID not configured');
|
|
96
|
+
}
|
|
97
|
+
const hasAccess = validation.payload.enabled_services.includes(serviceId);
|
|
98
|
+
if (!hasAccess) {
|
|
99
|
+
this.logger.warn(`Service access denied - Service: ${serviceId}, Enabled: [${validation.payload.enabled_services.join(', ')}]`);
|
|
100
|
+
throw new common_1.UnauthorizedException(`Service '${serviceId}' not enabled for project ${validation.payload.project_uuid}`);
|
|
101
|
+
}
|
|
102
|
+
// Inject project context into request (no user context)
|
|
103
|
+
const projectContext = {
|
|
104
|
+
project_uuid: validation.payload.project_uuid,
|
|
105
|
+
enabled_services: validation.payload.enabled_services,
|
|
106
|
+
secret_version: validation.payload.secret_version,
|
|
107
|
+
token_id: validation.payload.token_id,
|
|
108
|
+
expires_at: validation.payload.exp
|
|
109
|
+
};
|
|
110
|
+
request.project = projectContext;
|
|
111
|
+
this.logger.log(`Authentication successful for project: ${projectContext.project_uuid}, service: ${serviceId}`);
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
if (error instanceof common_1.UnauthorizedException) {
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
this.logger.error('Project authentication failed:', error.message);
|
|
119
|
+
throw new common_1.UnauthorizedException('Authentication service error');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Extract request object from different NestJS contexts
|
|
124
|
+
*/
|
|
125
|
+
getRequest(context) {
|
|
126
|
+
const contextType = context.getType();
|
|
127
|
+
if (contextType === 'graphql') {
|
|
128
|
+
// GraphQL context
|
|
129
|
+
const gqlContext = context.getArgByIndex(2);
|
|
130
|
+
return gqlContext?.req || gqlContext?.request;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// HTTP context
|
|
134
|
+
return context.switchToHttp().getRequest();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Validate project token using cached JWKS + RSA verification
|
|
139
|
+
*/
|
|
140
|
+
async validateProjectToken(token) {
|
|
141
|
+
try {
|
|
142
|
+
// Get public key from cached JWKS
|
|
143
|
+
const publicKey = await this.getPublicKeyFromCache(token);
|
|
144
|
+
// Verify JWT with RSA public key
|
|
145
|
+
const verified = jwt.verify(token, publicKey, {
|
|
146
|
+
algorithms: ['RS512'],
|
|
147
|
+
ignoreExpiration: false,
|
|
148
|
+
});
|
|
149
|
+
if (typeof verified !== 'object' || verified === null) {
|
|
150
|
+
return {
|
|
151
|
+
isValid: false,
|
|
152
|
+
error: 'Invalid token payload'
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
const payload = verified;
|
|
156
|
+
// Validate project token structure
|
|
157
|
+
if (!payload.project_uuid || !payload.token_id || !Array.isArray(payload.enabled_services)) {
|
|
158
|
+
return {
|
|
159
|
+
isValid: false,
|
|
160
|
+
error: 'Invalid project token structure'
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
const currentSecretVersion = await this.getCurrentProjectSecretVersion(payload.project_uuid);
|
|
164
|
+
if (currentSecretVersion > 0 && payload.secret_version < currentSecretVersion) {
|
|
165
|
+
return {
|
|
166
|
+
isValid: false,
|
|
167
|
+
error: `Token secret version outdated (token: ${payload.secret_version}, current: ${currentSecretVersion}) - re-authentication required`
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
// Check if token is in Redis cache (for revocation)
|
|
171
|
+
const redis = await redis_connection_1.default.getInstance();
|
|
172
|
+
const tokenExists = await redis.sendCommand([
|
|
173
|
+
'EXISTS',
|
|
174
|
+
`project_token:${payload.token_id}`
|
|
175
|
+
]);
|
|
176
|
+
if (tokenExists === 0) {
|
|
177
|
+
return {
|
|
178
|
+
isValid: false,
|
|
179
|
+
error: 'Token has been revoked'
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
isValid: true,
|
|
184
|
+
payload
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
this.logger.error('Token validation error:', error.message);
|
|
189
|
+
return {
|
|
190
|
+
isValid: false,
|
|
191
|
+
error: error instanceof Error ? error.message : 'Token validation failed'
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get RSA public key from cached JWKS (with 5+ hour caching)
|
|
197
|
+
*/
|
|
198
|
+
async getPublicKeyFromCache(token) {
|
|
199
|
+
try {
|
|
200
|
+
// Extract kid from JWT header
|
|
201
|
+
const header = this.decodeJwtHeader(token);
|
|
202
|
+
if (!header.kid) {
|
|
203
|
+
throw new Error('Missing key ID in token header');
|
|
204
|
+
}
|
|
205
|
+
// Check Redis for cached JWKS
|
|
206
|
+
const redis = await redis_connection_1.default.getInstance();
|
|
207
|
+
const cachedJwks = await redis.sendCommand([
|
|
208
|
+
'GET',
|
|
209
|
+
this.jwksCacheKey
|
|
210
|
+
]);
|
|
211
|
+
let keyStore;
|
|
212
|
+
if (cachedJwks) {
|
|
213
|
+
this.logger.debug('Using cached JWKS');
|
|
214
|
+
const jwksData = JSON.parse(cachedJwks);
|
|
215
|
+
keyStore = await jose.JWK.asKeyStore(jwksData);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
this.logger.log('JWKS cache miss - fetching from Mercury');
|
|
219
|
+
keyStore = await this.fetchAndCacheJWKS();
|
|
220
|
+
}
|
|
221
|
+
// Get the specific key
|
|
222
|
+
const key = keyStore.get(header.kid);
|
|
223
|
+
if (!key) {
|
|
224
|
+
throw new Error(`Key ${header.kid} not found in JWKS`);
|
|
225
|
+
}
|
|
226
|
+
// Return PEM format public key
|
|
227
|
+
return key.toPEM(false);
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
this.logger.error('Failed to get public key:', error.message);
|
|
231
|
+
throw new Error(`Failed to get public key: ${error.message}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Get current project secret version from Redis (cached by Mercury)
|
|
236
|
+
*/
|
|
237
|
+
async getCurrentProjectSecretVersion(projectUuid) {
|
|
238
|
+
try {
|
|
239
|
+
const redis = await redis_connection_1.default.getInstance();
|
|
240
|
+
const cacheKey = `project_secret_version:${projectUuid}`;
|
|
241
|
+
const cachedVersion = await redis.sendCommand([
|
|
242
|
+
'GET', cacheKey
|
|
243
|
+
]);
|
|
244
|
+
if (cachedVersion) {
|
|
245
|
+
return parseInt(cachedVersion, 10);
|
|
246
|
+
}
|
|
247
|
+
// If not in Redis, this means Mercury hasn't cached it yet
|
|
248
|
+
// This shouldn't happen in normal flow, but fallback to allowing the token
|
|
249
|
+
// Mercury's Kafka handler will eventually populate this
|
|
250
|
+
return 0; // Default to allow if version not found
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
throw new Error(`Failed to get project secret version: ${error.message}`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Fetch JWKS from Mercury and cache in Redis
|
|
258
|
+
*/
|
|
259
|
+
async fetchAndCacheJWKS() {
|
|
260
|
+
try {
|
|
261
|
+
const path = 'auth/project/.well-known/jwks.json';
|
|
262
|
+
const jwksUri = `${process.env.MERCURY_BASE_URL}/${path}`;
|
|
263
|
+
const timestamp = Date.now().toString();
|
|
264
|
+
const signatureInput = 'GET' + `/${path}` + timestamp;
|
|
265
|
+
const sharedSecret = process.env.SIGNATURE_SHARED_SECRET || '';
|
|
266
|
+
const signature = crypto
|
|
267
|
+
.createHmac('sha256', sharedSecret)
|
|
268
|
+
.update(signatureInput)
|
|
269
|
+
.digest('hex');
|
|
270
|
+
const headers = {
|
|
271
|
+
Accept: 'application/json',
|
|
272
|
+
'User-Agent': 'Node-JWT-Strategy/1.0',
|
|
273
|
+
'X-Timestamp': timestamp,
|
|
274
|
+
'X-Signature': signature,
|
|
275
|
+
};
|
|
276
|
+
this.logger.log(`Fetching JWKS from: ${jwksUri}`);
|
|
277
|
+
const response = await axios_1.default.get(jwksUri, {
|
|
278
|
+
timeout: 10000,
|
|
279
|
+
headers,
|
|
280
|
+
});
|
|
281
|
+
if (!response.data || !response.data.keys) {
|
|
282
|
+
throw new Error('Invalid JWKS response');
|
|
283
|
+
}
|
|
284
|
+
// Cache JWKS in Redis for 5+ hours
|
|
285
|
+
const redis = await redis_connection_1.default.getInstance();
|
|
286
|
+
await redis.sendCommand([
|
|
287
|
+
'SETEX',
|
|
288
|
+
this.jwksCacheKey,
|
|
289
|
+
this.jwksCacheTTL.toString(),
|
|
290
|
+
JSON.stringify(response.data)
|
|
291
|
+
]);
|
|
292
|
+
this.logger.log(`JWKS cached successfully for ${this.jwksCacheTTL} seconds`);
|
|
293
|
+
// Create and return key store
|
|
294
|
+
return await jose.JWK.asKeyStore(response.data);
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
this.logger.error('Failed to fetch JWKS:', error.message);
|
|
298
|
+
if (axios_1.default.isAxiosError(error)) {
|
|
299
|
+
if (error.code === 'ECONNREFUSED') {
|
|
300
|
+
throw new Error('Mercury service unavailable');
|
|
301
|
+
}
|
|
302
|
+
else if (error.code === 'ETIMEDOUT') {
|
|
303
|
+
throw new Error('Mercury service timeout');
|
|
304
|
+
}
|
|
305
|
+
else if (error.response) {
|
|
306
|
+
throw new Error(`Mercury returned ${error.response.status}: ${error.response.statusText}`);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
throw new Error(`Failed to fetch JWKS: ${error.message}`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Decode JWT header to extract kid
|
|
314
|
+
*/
|
|
315
|
+
decodeJwtHeader(token) {
|
|
316
|
+
const parts = token.split('.');
|
|
317
|
+
if (parts.length !== 3) {
|
|
318
|
+
throw new Error('Invalid JWT format');
|
|
319
|
+
}
|
|
320
|
+
const headerJson = Buffer.from(parts[0], 'base64').toString();
|
|
321
|
+
return JSON.parse(headerJson);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Update JWKS cache TTL (can be increased beyond 5 hours)
|
|
325
|
+
*/
|
|
326
|
+
setCacheTTL(seconds) {
|
|
327
|
+
this.jwksCacheTTL = seconds;
|
|
328
|
+
this.logger.log(`JWKS cache TTL updated to ${seconds} seconds`);
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Manually refresh JWKS cache
|
|
332
|
+
*/
|
|
333
|
+
async refreshJWKSCache() {
|
|
334
|
+
this.logger.log('Manually refreshing JWKS cache');
|
|
335
|
+
await this.fetchAndCacheJWKS();
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Cleanup Redis connection (called on app shutdown)
|
|
339
|
+
*/
|
|
340
|
+
async onApplicationShutdown() {
|
|
341
|
+
const redis = await redis_connection_1.default.getInstance();
|
|
342
|
+
if (redis) {
|
|
343
|
+
await redis.quit();
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
exports.ProjectAuthGuard = ProjectAuthGuard;
|
|
348
|
+
exports.ProjectAuthGuard = ProjectAuthGuard = ProjectAuthGuard_1 = __decorate([
|
|
349
|
+
(0, common_1.Injectable)(),
|
|
350
|
+
__metadata("design:paramtypes", [])
|
|
351
|
+
], ProjectAuthGuard);
|
|
352
|
+
//# sourceMappingURL=project.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.guard.js","sourceRoot":"","sources":["../../../src/nestjs/guards/project.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { JwtAuthModule } from './jwt-auth.module';
|
|
2
|
+
export { JwtStrategy } from './strategies/jwt-strategy';
|
|
3
|
+
export { JwtAuthGuard } from './guards/jwt-guard';
|
|
4
|
+
export { ProjectAuthGuard } from './guards/project.guard';
|
|
5
|
+
export { ProjectAndUserAuth } from './decorators/auth.decorator';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProjectAndUserAuth = exports.ProjectAuthGuard = exports.JwtAuthGuard = exports.JwtStrategy = exports.JwtAuthModule = void 0;
|
|
4
|
+
var jwt_auth_module_1 = require("./jwt-auth.module");
|
|
5
|
+
Object.defineProperty(exports, "JwtAuthModule", { enumerable: true, get: function () { return jwt_auth_module_1.JwtAuthModule; } });
|
|
6
|
+
var jwt_strategy_1 = require("./strategies/jwt-strategy");
|
|
7
|
+
Object.defineProperty(exports, "JwtStrategy", { enumerable: true, get: function () { return jwt_strategy_1.JwtStrategy; } });
|
|
8
|
+
var jwt_guard_1 = require("./guards/jwt-guard");
|
|
9
|
+
Object.defineProperty(exports, "JwtAuthGuard", { enumerable: true, get: function () { return jwt_guard_1.JwtAuthGuard; } });
|
|
10
|
+
var project_guard_1 = require("./guards/project.guard");
|
|
11
|
+
Object.defineProperty(exports, "ProjectAuthGuard", { enumerable: true, get: function () { return project_guard_1.ProjectAuthGuard; } });
|
|
12
|
+
var auth_decorator_1 = require("./decorators/auth.decorator");
|
|
13
|
+
Object.defineProperty(exports, "ProjectAndUserAuth", { enumerable: true, get: function () { return auth_decorator_1.ProjectAndUserAuth; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nestjs/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAAzC,gHAAA,aAAa,OAAA;AACtB,0DAAwD;AAA/C,2GAAA,WAAW,OAAA;AACpB,gDAAkD;AAAzC,yGAAA,YAAY,OAAA;AACrB,wDAAyD;AAAhD,iHAAA,gBAAgB,OAAA;AACzB,8DAAiE;AAAxD,oHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-auth.module.d.ts","sourceRoot":"","sources":["../../src/nestjs/jwt-auth.module.ts"],"names":[],"mappings":"AAMA,qBAMa,aAAa;CAAG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.JwtAuthModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const passport_1 = require("@nestjs/passport");
|
|
12
|
+
const jwt_guard_1 = require("./guards/jwt-guard");
|
|
13
|
+
const jwt_strategy_1 = require("./strategies/jwt-strategy");
|
|
14
|
+
let JwtAuthModule = class JwtAuthModule {
|
|
15
|
+
};
|
|
16
|
+
exports.JwtAuthModule = JwtAuthModule;
|
|
17
|
+
exports.JwtAuthModule = JwtAuthModule = __decorate([
|
|
18
|
+
(0, common_1.Global)(),
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [passport_1.PassportModule.register({ defaultStrategy: 'jwt' })],
|
|
21
|
+
providers: [jwt_strategy_1.JwtStrategy, jwt_guard_1.JwtAuthGuard],
|
|
22
|
+
exports: [jwt_guard_1.JwtAuthGuard, passport_1.PassportModule],
|
|
23
|
+
})
|
|
24
|
+
], JwtAuthModule);
|
|
25
|
+
//# sourceMappingURL=jwt-auth.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-auth.module.js","sourceRoot":"","sources":["../../src/nestjs/jwt-auth.module.ts"],"names":[],"mappings":";;;;;;;;;AACA,2CAAgD;AAChD,+CAAkD;AAClD,kDAAkD;AAClD,4DAAwD;AAQjD,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IANzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,yBAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,SAAS,EAAE,CAAC,0BAAW,EAAE,wBAAY,CAAC;QACtC,OAAO,EAAE,CAAC,wBAAY,EAAE,yBAAc,CAAC;KACxC,CAAC;GACW,aAAa,CAAG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Strategy } from 'passport-jwt';
|
|
2
|
+
import { Request } from 'express';
|
|
3
|
+
import { AuthUser, JwtPayload } from '../../types/jwt-payload';
|
|
4
|
+
import 'dotenv/config';
|
|
5
|
+
declare const JwtStrategy_base: new (...args: [opt: import("passport-jwt").StrategyOptionsWithRequest] | [opt: import("passport-jwt").StrategyOptionsWithoutRequest]) => Strategy & {
|
|
6
|
+
validate(...args: any[]): unknown;
|
|
7
|
+
};
|
|
8
|
+
export declare class JwtStrategy extends JwtStrategy_base {
|
|
9
|
+
private expectedIssuer;
|
|
10
|
+
private jwksCache;
|
|
11
|
+
constructor();
|
|
12
|
+
private decodeJWTTokenForProjectUuid;
|
|
13
|
+
private getJwksUriAndPath;
|
|
14
|
+
private fetchJWKS;
|
|
15
|
+
private getSigningKey;
|
|
16
|
+
private createTokenCacheKey;
|
|
17
|
+
private cacheValidatedToken;
|
|
18
|
+
private getCachedToken;
|
|
19
|
+
private extractRawTokenFromRequest;
|
|
20
|
+
validate(request: Request, payload: JwtPayload): Promise<AuthUser>;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=jwt-strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-strategy.d.ts","sourceRoot":"","sources":["../../../src/nestjs/strategies/jwt-strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,eAAe,CAAC;;;;AAEvB,qBACa,WAAY,SAAQ,gBAA0B;IACzD,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAGH;;IA6Bd,OAAO,CAAC,4BAA4B;IA4BpC,OAAO,CAAC,iBAAiB;YAsBX,SAAS;YA+ET,aAAa;IAwE3B,OAAO,CAAC,mBAAmB;YAYb,mBAAmB;YAwBnB,cAAc;IAwC5B,OAAO,CAAC,0BAA0B;IAiB5B,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;CAwEzE"}
|