Как добавить пользователя в собственную базу данных при регистрации «транзакционным» способом? - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь использовать AWS Cognito для своего приложения.

Я могу успешно зарегистрировать пользователей в AWS Cognito, но я хочу также сохранить их в своей базе данных (с моим собственным API),Кроме того, как часть процесса регистрации.

Я видел, что мог бы использовать функцию триггера, такую ​​как Подтверждение публикации, но, насколько я понимаю, если сохранение пользователя в моей базе данных не удается, то пользователь будетвсе еще будет создан в пуле пользователей Cognito.

Я хочу обработать процесс регистрации транзакционным способом, чтобы в случае сбоя при сохранении пользователя в моей базе данных произошел сбой всего процесса.

Итак, это будет выглядеть примерно такэто:

  Aws Cognito Sign Up -> Send_to_database_trigger ----fails----> user is not created 
                                                  \---success--> user is created

Есть ли способ добиться того, чего я хочу?Спасибо.

1 Ответ

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

Вы можете использовать Предварительная регистрация Лямбда-триггер .

Он получает имя пользователя и все атрибуты пользователя в событии, и в случае неудачи пользователь не будет зарегистрированв Cognito.

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

Если вам нужно сохранить sub, то вы можете реализовать как Предварительную регистрацию, так и После подтверждения и обновить своезапись базы данных с sub в триггере пост-подтверждения.

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