AWS API-Gateway Cognito Authorizer не работает с действительным токеном - PullRequest
0 голосов
/ 29 марта 2019

Простая конечная точка API с Cognito User Pool Authorizer при использовании кнопки Authorizer Test (или при использовании почтальона / бессонницы) с допустимым токеном завершается неудачей (скриншот ниже):

enter image description here

Я знаю, что токен действителен, так как я могу сделать успешный вызов в пул пользователей Cognito user-info Конечная точка, используя тот же токен, и получить желаемый ответ. Также удаление авторизатора (установив его на None), также вернет желаемый ответ. Я пробовал как с Bearer ..., так и без него, я также пытался изменить исходный токен Authorization на method.request.header.Authorization, как я нашел в некоторый более старый вопрос , но сразу после сохранения он изменяет его обратно на Authorization, в то время как method.response.header.Authorization, похоже, тоже не работает. API был развернут через стек CloudFormation.

1 Ответ

1 голос
/ 01 апреля 2019

Я пишу полное руководство по этому вопросу, так как отсутствует документация, и нелегко найти нужную информацию для такой простой задачи.но это может занять несколько дней, поэтому до тех пор я опубликую здесь короткий ответ, и однажды (надеюсь) я закончу руководство, я обновлю этот ответ:

Моя проблема заключалась в том, что я использовал access_token, но мне пришлось использовать identity_token!Другая проблема заключается в том, что ни один из доступных инструментов OAuth2 (например, Auth-модули Postman и Insomnia) не возвращает и не использует identity_token, они даже не показывают токен!и хотя он есть в спецификациях OAuth2, никто не использует его (кроме Cognito!), ...

Поэтому я внес некоторые изменения в исходный код Insomnia модуля OAuth2 и использовал правильный токен, затем онначал работать!

Я собираюсь сделать PR для Бессонницы, и если она пройдет, функция может стать доступной в следующих выпусках, в противном случае я сделаю свой упакованный бинарный файл доступным так,peep может использовать его, так как в противном случае получение токенов от AWS - это кошмар!

...