firebase firebase-authentication

firebase - Autenticación de nombre de usuario en lugar de correo electrónico



firebase-authentication (3)

En lugar de utilizar un método en el que asigne una dirección de correo electrónico para el usuario, podría ser una mejor opción buscar una dirección de correo electrónico en su base de datos.

Un ejemplo sería:

  1. Solicitar el nombre de usuario para iniciar sesión con nombre de usuario y contraseña
  2. Verifique que el nombre de usuario existe en su base de datos y recupere la dirección de correo electrónico correspondiente para esa cuenta
  3. Pase esta dirección de correo electrónico al proceso de inicio de sesión sin problemas

Con Firebase puedo registrarme e iniciar sesión en los usuarios con direcciones de correo electrónico. Sin embargo, ¿qué pasa si quiero que la aplicación se base en el nombre de usuario? Por ejemplo, ¿iniciaría sesión con "Bobzilla" en lugar de "[email protected]"?

¿Es esto posible con Firebase?


No hay un nombre de usuario predeterminado + proveedor de contraseña integrado en la autenticación de Firebase. Pero puede crear su propio proveedor de identidad personalizado utilizando las instrucciones en la documentación de Firebase . Esto requiere un código que se ejecute en un entorno confiable, para el cual puede usar su propio servidor o Cloud Functions para Firebase . Ahora hay incluso un ejemplo de esto en el repositorio de muestras de funciones .

Alternativamente: puede usar el proveedor de correo electrónico + contraseña incorporado y simplemente agregar cualquier dominio detrás del nombre de usuario. Entonces, una vez que haya determinado el nombre de usuario, registre a su usuario con <username>@vikzillasapp.com .

Tenga en cuenta que esto hará que sea imposible para el usuario restablecer su contraseña si la olvida, ya que Firebase usa la dirección de correo electrónico para enviar el correo electrónico de restablecimiento de contraseña.


Puede usar la autenticación personalizada de Firebase . La autenticación personalizada es un método mediante el cual el usuario puede iniciar sesión en la aplicación utilizando un token personalizado.

Pero, necesita un código de back-end para crear un token personalizado cuando el usuario envía un nombre de usuario y contraseña a ese backend.

Afortunadamente, ahora existe la función de nube Firebase, con evento http, que puede resolver su problema fácilmente. El paso es:

  1. El usuario envía el nombre de usuario y la contraseña a la URL de la función de nube a través de parámetros de consulta (GET) o cuerpo de solicitud (POST)

  2. La función en la nube verificará si el nombre de usuario y la contraseña son válidos (por ejemplo, de la base de datos en tiempo real)

  3. Si el nombre de usuario y la contraseña son válidos, la función en la nube creará un token personalizado usando userId (debe guardar el userId). Y luego enviarlo al cuerpo de respuesta

  4. El cliente puede iniciar sesión usando ese CustomToken