我正在开发一个使用aws-amplify与Amazon Cognito进行交互的react本机应用程序。在我的用例中,我需要确保自定义属性的值在所有帐户中都是唯一的。 aws-amplify似乎没有允许我通过自定义属性在所有帐户中进行搜索的API。我怎样才能做到这一点?
答案 0 :(得分:0)
不幸的是,您根本无法单独使用Cognito:
自定义属性不可搜索。这是因为只有索引的属性才可搜索,而自定义属性无法索引。
您唯一的选择是保留您自己的数据库,该数据库将用户与属性值相关联,并在其中执行唯一性。例如,在DynamoDB中,您将相应地记录用户的sub
(唯一的Cognito身份)和自定义属性的值作为排序/分区键,请确保普通的Cognito客户端只能 read 属性,并提供您自己的API(lambda + api-gateway)以尝试添加/更新表,并使用cognito Admin API更新用户的“只读”自定义属性。
答案 1 :(得分:0)
是的,您无法搜索自定义属性。为什么不能使用AWS Cognito的标准属性之一来填充自定义属性。只是一个想法。然后,您还可以搜索以检查其唯一性。
标准属性:
用户名(区分大小写)
电子邮件
电话号码
名称
给定名称
family_name
首选用户名
cognito:user_status(在控制台中称为状态)(不区分大小写)
状态(在控制台中称为已启用)(区分大小写)
sub