Как настроить ответ Unauthorized 401 JSON авторизатора пула пользователей cognito в AWS API Gateway

Я добавил пул пользователей Cognito в качестве авторизатора в AWS API Gateway. Затем я протестировал этот авторизатор с помощью id_token, и он работает нормально. Я использовал лямбда-функции для регистрации / входа пользователей в пул пользователей Cognito.

Теперь мой вопрос заключается в том, как настроить ответ на ошибку, когда срок действия id_token истек или когда авторизатор когнитивных данных не может аутентифицировать текущего пользователя. В настоящее время я только получаю

{
    "message": "Unauthorized"
}

ИЛИ

{
    "message": "The incoming token has expired"
}

с ответом 401

1 ответ

Решение

Вы можете использовать ответы шлюза в API-шлюзе, чтобы изменить код состояния HTTP и ответ, который возвращается клиенту.

По умолчанию для описанного вами сценария ответ - "Неавторизован", а код состояния - 401. Чтобы изменить это -

  1. Перейдите к "Ответам шлюза" в левом столбце вашего API.
  2. Выберите "Неавторизованный" и нажмите "Изменить" в правом верхнем углу.
  3. Щелкните "application/json:" в разделе "Шаблоны ответов".
  4. Измените там сообщение как {"message":"Your custom message"} в разделе "Шаблон тела ответа" (см. снимок экрана ниже).
  5. Разверните API и подождите минуту, чтобы изменения вступили в силу.