Autenticarse con Firebase mediante un sistema de autenticación personalizado

Puedes integrar Firebase Authentication con un sistema de autenticación personalizado modificando tu servidor de autenticación para producir tokens firmados personalizados cuando un usuario inicia sesión correctamente. Tu aplicación recibe este token y lo usa para autenticarse con Firebase.

Antes de que empieces

  1. Si aún no lo has hecho, sigue los pasos de la guía de introducción .
  2. Instale y configure el SDK de administración de Firebase . Asegúrese de inicializar el SDK con las credenciales correctas para su proyecto de Firebase.

Autenticar con Firebase

  1. Cuando los usuarios inicien sesión en su aplicación, envíe sus credenciales de inicio de sesión (por ejemplo, su nombre de usuario y contraseña) a su servidor de autenticación. Su servidor verifica las credenciales y, si son válidas, crea un token de Firebase personalizado y lo envía de regreso a su aplicación.

  2. Después de recibir el token personalizado de su servidor de autenticación, páselo a signInWithCustomToken() para iniciar sesión como usuario:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

Próximos pasos

Después de que un usuario crea una nueva cuenta, esta cuenta se almacena como parte de su proyecto de Firebase y se puede usar para identificar a un usuario en cada aplicación de su proyecto, independientemente del método de inicio de sesión que utilizó el usuario.

En sus aplicaciones, puede obtener la información básica del perfil del usuario desde el objeto User . Consulte Administrar usuarios .

En las reglas de seguridad de Firebase Realtime Database y Cloud Storage, puede obtener el ID de usuario único del usuario que inició sesión a partir de la variable auth y usarlo para controlar a qué datos puede acceder un usuario.

Puede permitir que los usuarios inicien sesión en su aplicación utilizando varios proveedores de autenticación vinculando las credenciales del proveedor de autenticación a una cuenta de usuario existente.

Para cerrar la sesión de un usuario, llame signOut() :

await FirebaseAuth.instance.signOut();