通过自定义属性搜索Amazon Cognito用户

时间:2018-11-14 04:10:28

标签: javascript react-native amazon-cognito aws-amplify

我正在开发一个使用aws-amplify与Amazon Cognito进行交互的react本机应用程序。在我的用例中,我需要确保自定义属性的值在所有帐户中都是唯一的。 aws-amplify似乎没有允许我通过自定义属性在所有帐户中进行搜索的API。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

不幸的是,您根本无法单独使用Cognito:

https://docs.aws.amazon.com/cognito/latest/developerguide/how-to-manage-user-accounts.html#cognito-user-pools-searching-for-users-using-listusers-api

  

自定义属性不可搜索。这是因为只有索引的属性才可搜索,而自定义属性无法索引。

您唯一的选择是保留您自己的数据库,该数据库将用户与属性值相关联,并在其中执行唯一性。例如,在DynamoDB中,您将相应地记录用户的sub(唯一的Cognito身份)和自定义属性的值作为排序/分区键,请确保普通的Cognito客户端只能 read 属性,并提供您自己的API(lambda + api-gateway)以尝试添加/更新表,并使用cognito Admin API更新用户的“只读”自定义属性。

答案 1 :(得分:0)

是的,您无法搜索自定义属性。为什么不能使用AWS Cognito的标准属性之一来填充自定义属性。只是一个想法。然后,您还可以搜索以检查其唯一性。

  

标准属性:

     

用户名(区分大小写)

     

电子邮件

     

电话号码

     

名称

     

给定名称

     

family_name

     

首选用户名

     

cognito:user_status(在控制台中称为状态)(不区分大小写)

     

状态(在控制台中称为已启用)(区分大小写)

     

sub