无法在 AWS Mobile Hub 上切换用户池

Unable to switch User Pools on AWS Mobile Hub

我是 AWS 菜鸟,我在开始使用我的应用程序进行用户身份验证时遇到了一些问题。我正在开发一个简单的网络应用程序,我开始使用 awsmobile cli 和 aws-amplify 工具。

我在 mobile hub 上创建了一个新项目并且能够成功注册、验证和登录用户,但是 mobile hub 创建的默认用户池强制使用用户名。在我的应用程序中用户名没有真正的用处,最终我只想使用电子邮件地址、名字和姓氏作为创建帐户的必填字段。

我找到了一个 ,我按照建议的步骤进行了操作,但是我现在在登录时遇到问题,因为在计算客户端密钥的哈希值时出现错误,请求被拒绝。

"Unable to verify secret hash for client ***********************6pl"

删除旧用户池后,我现在收到 No userPool 错误,这很合理,因为新用户池似乎尚未与身份池相关联。

在移动中心的用户资源视图中,我仍然可以看到旧用户池(即使我删除了它)。我更新了身份验证提供程序以匹配新用户池中的客户端 ID 和详细信息。

在我的客户端上,我手动修改了 backend-details.json 文件以匹配新的用户池,还有 aws-exports.js 文件。使用 awsmobile push 通过控制台推送更改似乎不起作用,因为它会从旧用户池中提取详细信息。

对我做错了什么有什么想法吗?

错误 Unable to verify secret hash for client 可能是由于在创建用户池应用程序时启用 Generate Client Secret 引起的。目前 Javascript SDK 不支持具有客户端密钥的应用程序。要禁用此功能,请在 Cognito 中的“创建用户池”表单中创建应用程序时取消选中 Generate client secret 复选框。

No userPool 错误可能是由于 aws-exports.js 文件不包含新用户池的值。我会修改文件以包含新的池 ID。目前 Mobile Hub 不支持使用现有用户池,因此当您通过控制台推送更改时,您仍然只能从 Mobile Hub 创建的用户池中获取详细信息。

如果这有助于解决您的问题,请告诉我。正如安德鲁所说,我们有几个客户请求能够 re-use 他们的 Cognito 用户池和 Cognito 身份池,因此我们正在努力对这些请求进行优先级排序。

此致,
丹G
AWS 移动开发人员体验