`body` parameter is absent in AWS Lambda Authorizer `event` object

Viewed 4124

The event object is missing body and isBase64Encoded properties. But they should be there according to the docs The full structure is the following:

{
    "type": "REQUEST",
    "methodArn": "arn:aws:execute-api:us-west-2:*******:*******/development/POST/auth/login",
    "resource": "/{proxy+}",
    "path": "/auth/login",
    "httpMethod": "ANY",
    "headers": {
       .....
    },
    "queryStringParameters": {
        "test": "123"
    },
    "pathParameters": {
        "proxy": "auth/login"
    },
    "stageVariables": {
        "lambdaVersion": "development"
    },
    "requestContext": {
        "path": "/development/auth/login",
        "accountId": "*****",
        "resourceId": "f8wvnk",
        "stage": "development",
        "requestId": "****",
        "identity": {
            ....
        },
        "resourcePath": "/{proxy+}",
        "httpMethod": "POST",
        "apiId": "********"
    }
}

Does anyone have the similar issue?

3 Answers

In custom authorizer request type there is no body in the passed event to the authorizer. According to the documentation:

For a custom authorizer of the REQUEST type, API Gateway passes the required request parameters to the authorizer Lambda function as part of the event object. The affected request parameters include headers, path parameters, query string parameters, stage variables, and some of request context variables.

NO Body is there!

Enhanced request authorizer Lambda functions receive an event object that is similar to proxy integrations. It contains all of the information about a request, excluding the body.

Related