middy-middleware-jwt-auth
Version:
A middy JSON web token authorization middleware inspired by express-jwt.
65 lines • 3.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isLowerCaseAuthorizedEvent = exports.isUpperCaseAuthorizedEvent = exports.isAuthorizedApiGatewayEvent = exports.isAuthorizedWebsocketApiGatewayEvent = exports.isAuthorizedHttpApiGatewayEvent = exports.isAuthorizedRestApiGatewayEvent = exports.isAuthorizedEventBase = exports.isAuthorizedEvent = void 0;
function isAuthorizedEvent(event, isTokenPayload) {
return (isUpperCaseAuthorizedEvent(event, isTokenPayload) ||
isLowerCaseAuthorizedEvent(event, isTokenPayload));
}
exports.isAuthorizedEvent = isAuthorizedEvent;
function isAuthorizedEventBase(event, isTokenPayload) {
return (event != null &&
event.headers != null &&
(event.httpMethod != null || event.requestContext != null) &&
(event.auth === undefined ||
isTokenPayload == null ||
(event.auth &&
isTokenPayload(event.auth.payload) &&
typeof event.auth.token === "string")));
}
exports.isAuthorizedEventBase = isAuthorizedEventBase;
function isAuthorizedRestApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedEventBase(event, isTokenPayload) &&
typeof event.httpMethod === "string");
}
exports.isAuthorizedRestApiGatewayEvent = isAuthorizedRestApiGatewayEvent;
function isAuthorizedHttpApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedEventBase(event, isTokenPayload) &&
typeof event.requestContext === "object" &&
event.requestContext !== null &&
"http" in event.requestContext &&
typeof event.requestContext.http === "object");
}
exports.isAuthorizedHttpApiGatewayEvent = isAuthorizedHttpApiGatewayEvent;
function isAuthorizedWebsocketApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedEventBase(event, isTokenPayload) &&
typeof event.requestContext === "object" &&
event.requestContext !== null &&
"connectionId" in event.requestContext &&
typeof event.requestContext.connectionId === "string" &&
"eventType" in event.requestContext &&
typeof event.requestContext.eventType === "string");
}
exports.isAuthorizedWebsocketApiGatewayEvent = isAuthorizedWebsocketApiGatewayEvent;
function isAuthorizedApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedRestApiGatewayEvent(event, isTokenPayload) ||
isAuthorizedHttpApiGatewayEvent(event, isTokenPayload) ||
isAuthorizedWebsocketApiGatewayEvent(event, isTokenPayload));
}
exports.isAuthorizedApiGatewayEvent = isAuthorizedApiGatewayEvent;
function isUpperCaseAuthorizedEvent(event, isTokenPayload) {
return (isAuthorizedApiGatewayEvent(event, isTokenPayload) &&
(typeof event.headers.Authorization === "string" ||
(Array.isArray(event.headers.Authorization) &&
event.headers.Authorization.length === 1 &&
event.headers.Authorization.every(function (entry) { return typeof entry === "string"; }))));
}
exports.isUpperCaseAuthorizedEvent = isUpperCaseAuthorizedEvent;
function isLowerCaseAuthorizedEvent(event, isTokenPayload) {
return (isAuthorizedApiGatewayEvent(event, isTokenPayload) &&
(typeof event.headers.authorization === "string" ||
(Array.isArray(event.headers.authorization) &&
event.headers.authorization.length === 1 &&
event.headers.authorization.every(function (entry) { return typeof entry === "string"; }))));
}
exports.isLowerCaseAuthorizedEvent = isLowerCaseAuthorizedEvent;
//# sourceMappingURL=IAuthorizedEvent.js.map