UNPKG

@mbc-cqrs-serverless/core

Version:
74 lines 2.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractInvokeContext = extractInvokeContext; exports.getAuthorizerClaims = getAuthorizerClaims; const serverless_express_1 = require("@codegenie/serverless-express"); const jwt_decode_1 = require("jwt-decode"); const helpers_1 = require("../helpers"); function extractInvokeContext(ctx) { if (helpers_1.IS_LAMBDA_RUNNING) { return (0, serverless_express_1.getCurrentInvoke)(); } if (!ctx) { return {}; } const request = ctx.switchToHttp().getRequest(); const headers = request.headers; let authorizer = undefined; const authToken = request.get('authorization'); if (authToken) { const claims = (0, jwt_decode_1.jwtDecode)(authToken); authorizer = { jwt: { claims, scopes: claims?.scope?.split(','), }, }; } return { event: { routeKey: `${request.method} ${request.path}`, rawPath: request.originalUrl, headers, requestContext: { domainName: request.hostname, http: { method: request.method, path: request.path, protocol: request.protocol, sourceIp: request.get('x-source-ip') || request.ip, userAgent: request.get('user-agent'), }, requestId: request.get('x-request-id'), authorizer, }, }, context: { awsRequestId: request.get('x-amz-cf-id') || request.get('x-amzn-trace-id') || request.get('x-request-id'), }, }; } function getAuthorizerClaims(ctx) { return (ctx?.event?.requestContext?.authorizer?.jwt?.claims || {}); // { // "sub": "92ca4f68-9ac6-4080-9ae2-2f02a86206a4", // "iss": "http://localhost:9229/local_2G7noHgW", // "cognito:groups": ["admins"], // "cognito:username": "admin2", // "origin_jti": "af065044-5ddd-46f9-b0bb-94941ad80a11", // "aud": "dnk8y7ii3wled35p3lw0l2cd7", // "event_id": "4dbf2af0-6bfc-4500-a3b1-2a07293accb4", // "token_use": "id", // "auth_time": 1699930911, // "name": "admin2", // "custom:tenant": "1801", // "custom:roles": "[{\"role\":\"system_admin\"}]", // "exp": 1700017311, // "email": "admin@test.com", // "iat": 1699930911, // "jti": "ed9c5048-a6ea-4c67-ba60-4d9c3bcbafaa" // } } //# sourceMappingURL=invoke.js.map