我是一个AWS noob,我在应用程序上开始使用用户身份验证时遇到了一些问题。我正在开发一个简单的网络应用程序,我开始使用awsmobile cli和aws-amplify工具。
我在移动中心上创建了一个新项目,并且能够成功注册,验证和登录用户,但移动中心创建的默认用户池强制要求使用用户名。在我的应用程序中没有真正好用的用户名,最终我只想使用电子邮件地址,名字和姓氏作为创建帐户的必填字段。
我找到了一个Answer from a member of the AWS developer experience,我按照建议的步骤进行了操作,但由于在从客户端密钥计算哈希值时出现错误而请求被拒绝,我现在遇到了登录问题。
"Unable to verify secret hash for client ***********************6pl"
删除旧用户池后,我现在收到No userPool
错误,因为看起来新用户池似乎没有与标识池关联。
在移动集线器的用户资源视图中,我仍然可以看到旧用户池(即使我删除了它)。我已更新身份验证提供程序以匹配客户端ID和新用户池中的详细信息。
在我的客户端上,我手动修改了backend-details.json
文件以匹配新用户池以及aws-exports.js
文件。使用awsmobile push
通过控制台推送更改似乎不起作用,因为它从旧用户池中提取详细信息。
关于我做错的任何想法?
答案 0 :(得分:1)
创建用户池应用时,启用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创建的用户池中获取详细信息。
如果这有助于解决您的问题,请告诉我。就像Andrew说的那样,我们有几个客户要求能够重新使用他们的Cognito用户池和Cognito Identity Pool,因此我们正在努力优先处理这些请求。
此致
丹G
AWS移动开发人员体验