1

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

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

我从 AWS 开发人员体验成员那里找到了答案,我按照推荐的步骤进行操作,但我现在在登录时遇到问题,因为在计算客户端密码的哈希时出现错误,请求被拒绝。

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

删除旧用户池后,我现在收到一个No userPool错误,这是有道理的,因为看起来新用户池尚未与身份池关联。

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

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

关于我做错了什么的任何想法?

4

1 回答 1

1

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

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

让我知道这是否有助于解决您的问题。正如 Andrew 所说,我们有几个客户要求能够重新使用他们的 Cognito 用户池和 Cognito 身份池,因此我们正在努力对这些请求进行优先级排序。

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

于 2018-04-04T22:37:34.433 回答