4

amplify add auth我根据指南将我的 AWS Cognito 集成到我的 React Native 应用程序中,一切都很好,我可以在应用程序中注册和登录。cli 向导将两个应用程序客户端与其创建的用户池相关联:[poolid]_app_client[poolid]_app_clientWeb.

我希望经过身份验证的用户能够与托管在 EC2 实例上的 Web 应用程序进行通信。我想我可以使用 Application Load Balancer 来做到这一点,方法是将其设置为将经过身份验证的请求转发到 EC2 实例。问题是,我无法创建使用 Cognito 用户池进行身份验证的 Application Load Balancer 默认操作。

如果我选择与 关联的应用程序客户端[poolid]_app_clientWeb,我会在保存时收到错误:Error creating listener The user pool client must have a client secret。这是放大工具导出到我的 React Native 应用程序的客户端 ID aws-exports.js

[poolid]_app_client如果我选择与我相关联的 App Client Error creating listener OAuth flows must be enabled in the user pool client

不知道如何进行。ALB 是要走的路还是 API 网关?

在此处输入图像描述

4

2 回答 2

2

您应该在“用户池 -> 应用程序集成 -> 应用程序客户端”设置中为您的客户端进行了适当的更改

于 2019-12-13T13:48:36.360 回答
-1

API Gateway 使这变得更加简单。在我完成创建 API 之后,我能够创建一个与我的 Cognito 用户池(clientWeb 用户池)连接的授权者。Method Request然后,在创建端点资源之后,我将它们与配置部分中的授权人相关联。

然后我可以发送从 Amplify 获得的身份令牌:

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

作为我配置的端点的 HTTP 标头值。

于 2019-07-08T05:40:47.857 回答