как проверить, существует ли пользователь с таким же адресом электронной почты или номером телефона при регистрации в пуле пользователей Cognito - PullRequest
0 голосов
/ 03 апреля 2019

когда новый пользователь регистрируется с тем же адресом электронной почты и номером телефона, пользователь успешно зарегистрирован в пуле пользователей 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'                                        
                },                                                             
            ],
)

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

У нас тот же сценарий. Мне также нужно запретить пользователям регистрироваться с тем же адресом электронной почты и / или номером телефона.

В нашем случае у нас есть служба User Data Service, в которой хранятся данные, относящиеся к пользователю, включая адрес электронной почты и номер телефона (это дубликаты данных в Cognito).

Поскольку у нас уже есть Service, я предпочел использовать его, а не извлекать список пользователей Cognito и проходить по ним (представьте, что если у вас есть тысячи или более пользователей, это может потребовать времени для извлечения и времени в петлю)

Я запросил у нашего User Data Service метод подтверждения, если адрес электронной почты или номер телефона уже существует.

Я создал лямбду для проверки и установил лямбду Pre-sign up trigger.

Pre-sign up trigger также запускается для пользователей, которые регистрируются через Google или Facebook, поэтому он не сможет зарегистрироваться, если их электронная почта уже существует.

0 голосов
/ 05 апреля 2019

Вы можете использовать вызов API ListUsers (https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html), чтобы отфильтровать пользователей по их атрибутам и, если он вернется с результатами, вы можете обработать проверку пользователя.

Вы также можете использовать эту логику в «Лямбда-триггере предварительной регистрации» для централизации логики проверки на стороне сервера: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-sign-up.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...