Пул пользователей позволяет двум пользователям с одним и тем же адресом электронной почты, несмотря на конфигурацию - PullRequest
0 голосов
/ 07 июня 2018

Фон

Я использую aws-amplify для взаимодействия с Cognito.Поэтому, когда пользователь регистрируется в моем приложении, я звоню Auth.signUp().Я передаю только имя пользователя (адрес электронной почты) и пароль для этой функции.

Мой пул пользователей настроен на разрешение входа только по электронной почте:

User Pool Attributes configuration


Ошибка?

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

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


Состояние гонки?

Моя первая мысль былачто, поскольку я посылаю два запроса так близко друг к другу, это может быть своего рода неизбежным условием гонки.Если я ввожу искусственную паузу между вызовами (например, точка останова или setTimeout), все работает, как и ожидалось.

Однако даже при очень узком расстоянии второй запрос делает возвращает ответ об ошибке, который я ожидал:

{ code: 'InvalidParameterException',
  name: 'InvalidParameterException',
  message: 'Alias entry already exists for a different username' 
}

К сожалению, этот ответ вводит в заблуждение, потому что я do получаю второго (дублирующего) пользователя, созданного в моем пулеrequest.


MCVE

Это легко воспроизвести, дважды выполнив Auth.signUp одновременно, либо в скрипте узла, либо вбраузер. Этот репозиторий содержит примеры обоих.


Вопрос (ы)

  • Является ли этозаконный баг с Cognito?
  • Является ли preSignUp Lambda моим единственным способом защиты от этого?Если да, то как будут выглядеть широкие штрихи этой реализации?

1 Ответ

0 голосов
/ 08 февраля 2019

Я отправил это в службу поддержки AWS.Они знают об этой проблеме, но у них нет ETA.

Благодарим за обращение в службу поддержки Premium AWS.Я понимаю, что вы хотели бы знать, знает ли команда Cognito о проблеме, опубликованной здесь [1].

Я проверил с командой Cognito, и ДА, они знают об этой проблеме / ошибке.Хорошая новость в том, что у нас уже есть проблема с Cognito Team, чтобы решить эту проблему.Однако я не смогу сообщить ETA о том, когда это исправление выйдет в свет, поскольку у меня нет никакой информации об их планах разработки / выпуска.Но я хотел бы поблагодарить вас за ваш ценный вклад в доведение этого вопроса до нашего сведения, я очень признателен.

...