Использование AWS Amplify аутентифицированного пользователя для связи с ALB или шлюзом API? - PullRequest
1 голос
/ 18 июня 2019

Я настроил интеграцию AWS Cognito в свое приложение React Native, используя amplify add auth согласно руководству , все хорошо, я могу зарегистрироваться и войти в приложение.Мастер cli связывает два клиента приложения с созданным им пулом пользователей: [poolid]_app_client и [poolid]_app_clientWeb.

Я бы хотел, чтобы аутентифицированные пользователи могли общаться с веб-приложением, размещенным на экземпляре EC2.Я подумал, что мог бы использовать Application Load Balancer для этого, настроив его для пересылки аутентифицированных запросов в экземпляр EC2.Проблема в том, что я не могу создать действие по умолчанию для Application Load Balancer, которое проходит аутентификацию в Cognito User Pool.

Если я выберу клиент приложения, связанный с [poolid]_app_clientWeb, при сохранении я получаю сообщение об ошибке: Error creating listener The user pool client must have a client secret.Это идентификатор клиента, экспортируемый инструментами усиления в мое приложение React Native в aws-exports.js.

Если я выберу клиент приложения, связанный с [poolid]_app_client, я получу Error creating listener OAuth flows must be enabled in the user pool client.

Не знаю, как поступить.Является ли ALB подходом или шлюзом API?

enter image description here

1 Ответ

0 голосов
/ 08 июля 2019

API Gateway делает это намного проще.После того, как я прошел Create API, я смог создать Authorizer, который подключился к моему Cognito User Pool (clientWeb).Затем, после создания ресурсов конечной точки, я связал их с авторизатором в разделе Method Request их конфигурации.

Затем я мог бы отправить маркер идентификации, полученный от Amplify:

(await Auth.currentSession()).idToken.jwtToken

в качестве значения заголовка HTTP для настроенных конечных точек.

...