middy-middleware-jwt-auth
Version:
A middy JSON web token authorization middleware inspired by express-jwt.
64 lines • 3.29 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isAuthorizedEvent = isAuthorizedEvent;
exports.isAuthorizedEventBase = isAuthorizedEventBase;
exports.isAuthorizedRestApiGatewayEvent = isAuthorizedRestApiGatewayEvent;
exports.isAuthorizedHttpApiGatewayEvent = isAuthorizedHttpApiGatewayEvent;
exports.isAuthorizedWebsocketApiGatewayEvent = isAuthorizedWebsocketApiGatewayEvent;
exports.isAuthorizedApiGatewayEvent = isAuthorizedApiGatewayEvent;
exports.isUpperCaseAuthorizedEvent = isUpperCaseAuthorizedEvent;
exports.isLowerCaseAuthorizedEvent = isLowerCaseAuthorizedEvent;
function isAuthorizedEvent(event, isTokenPayload) {
return (isUpperCaseAuthorizedEvent(event, isTokenPayload) ||
isLowerCaseAuthorizedEvent(event, isTokenPayload));
}
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")));
}
function isAuthorizedRestApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedEventBase(event, isTokenPayload) &&
typeof event.httpMethod === "string");
}
function isAuthorizedHttpApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedEventBase(event, isTokenPayload) &&
typeof event.requestContext === "object" &&
event.requestContext !== null &&
"http" in event.requestContext &&
typeof event.requestContext.http === "object");
}
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");
}
function isAuthorizedApiGatewayEvent(event, isTokenPayload) {
return (isAuthorizedRestApiGatewayEvent(event, isTokenPayload) ||
isAuthorizedHttpApiGatewayEvent(event, isTokenPayload) ||
isAuthorizedWebsocketApiGatewayEvent(event, isTokenPayload));
}
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"; }))));
}
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"; }))));
}
//# sourceMappingURL=IAuthorizedEvent.js.map
;