Amazon web services 如何在Cognito用户池中注册时检查用户是否已经存在相同的电子邮件或电话号码

Amazon web services 如何在Cognito用户池中注册时检查用户是否已经存在相同的电子邮件或电话号码,amazon-web-services,amazon-cognito,aws-serverless,Amazon Web Services,Amazon Cognito,Aws Serverless,当新用户使用相同的电子邮件和电话号码注册时,用户成功地在Cognito用户池中注册。那个么,在Cognito用户池中注册时,我如何检查用户是否已经拥有相同的电子邮件或电话号码 这是我在Cognito用户池中注册用户的代码 result = client.sign_up( ClientId= clientId,

当新用户使用相同的电子邮件和电话号码注册时,用户成功地在Cognito用户池中注册。那个么,在Cognito用户池中注册时,我如何检查用户是否已经拥有相同的电子邮件或电话号码

这是我在Cognito用户池中注册用户的代码

result = client.sign_up(                                                
            ClientId= clientId,                                                 
            Username= data['username'],                                         
            Password= data['password'],                                         
            UserAttributes=[                                                    
                {                                                               
                    'Name': 'phone_number',                                     
                    'Value': data['phone_number'],                              
                },                                                              
                {                                                               
                    'Name': 'email',                                            
                    'Value': data['email'],                                     
                },                                                              
                {                                                              
                    'Name': 'custom:usertype',                                 
                    'Value': data['userType']                                  
                },                                                             
            ],                                                                  
            ValidationData=[                                                   
                {                                                              
                    'Name': 'custom:usertype',                                 
                    'Value': 'required'                                        
                },                                                             
            ],
)

您可以使用ListUsersAPI调用()按用户的属性筛选用户,如果返回结果,则可以处理用户验证

您还可以在“预注册Lambda触发器”中包含此逻辑,以集中服务器端验证逻辑:

我们有相同的场景。 我还需要防止用户使用相同的电子邮件和/或电话号码注册

在我们的例子中,我们有一个服务a
用户数据服务
,它存储与用户相关的数据,包括电子邮件和电话号码(这是Cognito的重复数据)

由于我们已经有了这项
服务
,我更喜欢使用这项服务,而不是获取Cognito用户列表并在其中循环(想象一下,如果您有数千个或更多的用户,则需要花费一段时间来获取和循环)

我所做的是请求我们的
用户数据服务的方法在电子邮件或电话号码已经存在时生效

我创建了一个lambda来进行验证,并将lambda设置为一个
预注册触发器

预注册触发器
也会为通过谷歌或Facebook注册的用户触发,因此,如果他们的电子邮件已经存在,它将阻止他们注册