dherault / serverless-offline

Emulate AWS λ and API Gateway locally when developing your Serverless project
MIT License
5.19k stars 796 forks source link

httpApi lambda authorizer context format incorrect #1697

Open TriangularCube opened 1 year ago

TriangularCube commented 1 year ago

Bug Report

The format returned from lambda authorizers with simple response is incorrect. What I get as event in subsequent lambdas are

{
  ...
  requestContext: {
    authorizer: {
      // Context object passed from authorizer
      jwt: ...
    }
  }
}

whereas the format in production should be

{
  ...
  requestContext: {
    authorizer: {
      lambda: {
        // Context from authorizer
      }
    }
  }
}

Sample Code

service: my-service

plugins:
  - serverless-offline

provider:
  runtime: nodejs18.x
  stage: dev
  httpApi:
    authorizers: 
      - type: request
        functionName: authorizer
        payloadVersion: 2.0
        enableSimpleResponses: true

functions:
  authorizer:
    handler: handler.main
  hello:
    events:
      - httpApi:
          method: get
          path: /sample
          authorizer:
            name: some-name
    handler: handler.hello
exports.main = async () => {
  return {
    isAuthorized: true,
    context: {
      // whatever
    }
  }
}
exports.hello = async (event) => {
  console.log(event)
}

Environment