Аутентификация имени пользователя вместо электронной почты

С Firebase я могу зарегистрироваться и войти в систему, используя адреса электронной почты. Однако что, если я хочу, чтобы приложение было основано на имени пользователя. Например, вы должны войти в систему с "Bobzilla" вместо "[email protected]"?

Возможно ли это с Firebase?

Ответ 1

Простой: вы можете добавить любой домен за именем пользователя. Итак, как только вы определили имя пользователя, зарегистрируйте своего пользователя с <username>@vikzillasapp.com.

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

Если это не соответствует вашим потребностям, вы можете свернуть собственный поставщик удостоверений, используя инструкции в документации Firebase. Для этого требуется код, который работает в надежной среде, для которой вы можете использовать свой собственный сервер или облачные функции для Firebase. В настоящее время есть пример этого в repo-функции-samples.

Ответ 2

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

Примером может служить:

  1. Подскажите имя пользователя для входа с именем пользователя и паролем
  2. Проверьте, что имя пользователя существует в вашей базе данных и получает соответствующий адрес электронной почты для этой учетной записи.
  3. Полностью передать этот адрес электронной почты в процесс входа в систему

Ответ 3

Вы можете использовать настраиваемый auth. Пользовательский auth - это метод, с помощью которого пользователь может войти в приложение с помощью пользовательского токена.

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

К счастью, теперь есть облачная функция firebase с событием http, которая может легко решить вашу проблему. Шаг:

  1. Пользователь отправляет имя пользователя и пароль в URL-адрес облачной функции через параметры запроса (GET) или тело запроса (POST)

  2. Cloud funtion будет проверять правильность имени пользователя и пароля (например: из базы данных реального времени)

  3. Если имя пользователя и пароль действительны, функция облака создаст пользовательский токен, используя userId (вам нужно сохранить userId). Затем отправьте его в тело ответа

  4. Затем клиент может войти в систему с помощью этого customToken