Маркер доступа Cognito + аутентификация шлюза API - (размещенный пользовательский интерфейс или метод аутентификации в React js), возвращающие разные значения из одного сеанса - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь реализовать аутентификацию шлюза API с использованием токена Cognito Access от аутентифицированного пользователя, как показано в видео -> https://www.youtube.com/watch?v=bj3yVT6j3XU
enter image description here

Чтобы получить токен доступа, я выполняю 2 метода:

1) Получение «токена доступа» с помощью размещенного пользовательского интерфейса + код + почтальон: в пуле пользователя Cognito я получаю доступ к размещенному интерфейсу пользователя в Конфигурации клиента приложения »: enter image description here

После нажатия кнопки выше и регистрации с существующим пользователем я получаю код в URL, как показано ниже: enter image description here

С этим кодом я go могу почтальону и могу иметь доступ к токену доступа, как показано ниже: enter image description here

Все еще используя Почтальон, я вызываю URL-адрес API с заголовком, содержащим «Авторизацию», и успешно получаю ответ: enter image description here

2) Получение «токена доступа» с помощью метода Auth в Реагируйте js: я уже пытался получить токен доступа с помощью Auth.currentAuthe nticatedUser () и Auth.currentSession (), и я понял, что они одинаковы. Итак, здесь я собираюсь показать токен доступа из Auth.curentAuthenticatedUser (). enter image description here

Когда я пытаюсь использовать этот токен доступа в коде реакции js, он не работает, и я получаю следующую ошибку: enter image description here

Когда я пытаюсь использовать этот токен доступа в Почтальоне, он также не работает: enter image description here

Когда я использую токен доступа из Размещенный пользовательский интерфейс в коде React js, он отлично работает: enter image description here

Мои вопросы:

• Почему я получаю другой «токен доступа»?

• Как я могу получить правильный токен доступа в React Js?

1 Ответ

0 голосов
/ 29 апреля 2020

Я нашел решение - кредиты для Chirag от SrceCde.

Вызов API был «неавторизован», когда я использовал AccessToken из Amplify для React JS из-за области действия. AccessToken генерируется с областью действия aws .cognito.signin.user.admin, как показано на рисунке ниже: enter image description here По этой причине необходимо включить "aws .cognito. signin.admin "Область OAuth в пуле пользователей Cognito, а также рассмотрите область OAuth" aws .cognito.signin.admin "в шлюзе API для API, который вы хотите вызвать. enter image description here enter image description here

После этого вы можете получить accessToken с помощью метода Auth.currentAuthenticatedUser (), как я уже делал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...