ton-logger
Version:
Logger set and configurations for datadog
46 lines (45 loc) • 1.59 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUserPayload = void 0;
const remove_empty_keys_1 = __importDefault(require("./remove-empty-keys"));
const getUserPayload = (event) => {
const { headers } = event;
if (!headers) {
return undefined;
}
const authorization = headers.Authorization || headers.authorization;
if (!authorization) {
return undefined;
}
const payload = authorization.split('.')[1];
if (!payload) {
return undefined;
}
try {
return JSON.parse(Buffer.from(payload, 'base64').toString('utf-8'));
}
catch (error) {
return undefined;
}
};
exports.getUserPayload = getUserPayload;
exports.default = (event) => {
var _a;
const context = (_a = event.requestContext) === null || _a === void 0 ? void 0 : _a.authorizer;
const payload = (0, exports.getUserPayload)(event);
if (!payload) {
return undefined;
}
return (0, remove_empty_keys_1.default)({
id: payload.sub,
status: context === null || context === void 0 ? void 0 : context.status,
groups: payload.groups || payload['cognito:groups'],
email: payload.email,
type: (context === null || context === void 0 ? void 0 : context.type) || payload.type,
companyId: context === null || context === void 0 ? void 0 : context.companyId,
scope: payload.scope,
});
};