Могу ли я проверить доменную зону электронной почты в Firebase Authentication? - PullRequest
0 голосов
/ 01 марта 2019

Могу ли я проверить доменную зону электронной почты в Аутентификации Firebase?

Например, я хочу успешно зарегистрировать только электронную почту от Yahoo и Gmail (@yahoo.com, @gmail.com emails)

ps конечно, я могу проверить это на стороне клиента, но этого недостаточно

1 Ответ

0 голосов
/ 01 марта 2019

К сожалению, вы не можете проверить домен электронной почты до регистрации (исключая клиентскую часть).

Перед вами есть несколько вариантов, которые вы можете сделать:

  • Вариант 1: Чтобы запретить доступ к базе данных и хранилищу, если домен пользователя не относится к вашим конкретным доменам:

Например:

"rules": {
    ".read": "auth.token.email.endsWith('@gmail.com')",
    ".write": "auth.token.email.endsWith('@gmail.com')"
  }
}

или как это:

"rules": {
    ".read": "auth.token.email_verified == true && auth.token.email.matches(/.*@gmail.com$/)",
    ".write": "auth.token.email_verified == true && auth.token.email.matches(/.*@gmail.com$/)"
  }
}

Кредиты: https://stackoverflow.com/a/38019847/2765346

  • Опция 2: Чтобы добавить триггер аутентификации Firebase и прослушать новых пользователей.Затем вы можете проверить новых зарегистрированных пользователей и отключить их с недействительными доменами:

Например:

exports.validateUser = functions.auth.user().onCreate((user) => {
   if (!user.email.matches(/.*@gmail.com$/)) {
       admin.auth().updateUser(data, {
           disabled: true
       });
   }
});

Кредиты: https://firebase.google.com/docs/functions/auth-events

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