Как запретить одноразовую электронную почту в подписке провайдера электронной почты firebase auth? - PullRequest
0 голосов
/ 07 декабря 2018

Мы используем firebase auth и firebase auth UI для аутентификации пользователя.

Мы хотим запретить или заблокировать пользователя, который пытается использовать временный почтовый ящик для регистрации (например: https://www.mailinator.com).

Существует 2 предложенных решения:

  1. Проводить ли проверку подлинности на стороне клиента для идентификатора электронной почты? (Сложно управлять черным списком поставщиков электронной почты на клиенте. Кроме того, люди все еще могут использоватьAPI для взлома).
  2. После того, как пользователь зарегистрируется на пользовательском событии onCreate, мы можем запустить функцию firebase, чтобы проверить идентификатор электронной почты по черному списку, затем мы можем отключить или отозвать учетную запись.Но здесь,

    • , если мы отключаем пользователя, он / она получит доступ к нашему приложению в течение следующего 1 часа, поскольку клиент уже получил токен ID.
    • Если мыотменив токен обновления, нам придется снова подождать 1 час или написать правило, чтобы сделать запрос в Firestore, чтобы проверить, отменен ли доступ пользователя. (Лучше, если мы сможем избежать этого запроса)

Есть ли лучший или собственный способ решения этой проблемы?

Если у нас нет других решений, мы выберем второй вариант (отзыв маркера обновления).

1 Ответ

0 голосов
/ 07 декабря 2018

Я бы сделал комбинацию обоих предложенных вами решений.Выполнение проверки на стороне клиента приведёт в замешательство большинство людей, и для тех, кто разбирается в технологиях и пытается их обойти, ваш триггер onCreate справится с ними.

Вы также можете добавить их uid в список заблокированных в базе данных реального времени из триггера onCreate.

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

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