Как изменить ответ API Gateway - PullRequest
0 голосов
/ 11 марта 2020

У меня есть aws ApiGateway, который проверяет мой токен и передает запрос в lambda.

Когда я получаю ошибку от лямбды, ответ APIGateway будет

{
    "statusCode": 500,
    "error": "Internal Server Error",
    "message": "..."
}

Но если я не передам свой токен, то APIGateway вернет мне

{
    "message": "Unauthorized"
}

И в почтальоне у меня есть statusCode: 401.

Как я хочу это:

{
    "statusCode": 401,
    "error": "Unauthorized"
}

Я использую serverless.yml для развертывания:

functions:
  index:
    handler: dist/index.handler
    events:
    - http:
        cors: true
        path: '/'
        method: any
        authorizer:
          type: COGNITO_USER_POOLS
          authorizerId:
            Ref: ApiGatewayAuthorizer

Пожалуйста, скажите мне, как я должен изменить свой serverless.yml, чтобы изменить ошибку «Unauthorized», как в третьем примере кода.

Ответы [ 2 ]

1 голос
/ 11 марта 2020

попытаться реализовать это: https://github.com/SeptiyanAndika/serverless-custom-authorizer:

Позволяет получать ответы типа:

{
  "success":false,
  "message":"Custom Deny Message"
}
0 голосов
/ 15 марта 2020

Этого можно добиться, изменив ответы шлюза.

  1. Go на API-шлюз в AWS Консоль управления.
  2. Выберите свой API.
  3. Нажмите «Ответы шлюза», которые можно увидеть слева.
  4. Выберите «Несанкционированный» в списке ответов шлюза.
  5. Выберите «application / json» в шаблонах ответов и нажмите "Изменить".
  6. Обновите тело шаблона ответа в соответствии с вашими требованиями.
  7. Нажмите "Сохранить".
  8. Повторно разверните свой API.
...