Estoy tratando de integrar la autenticación de base de fuego con mi servidor nodejs personalizado. La estrategia de correo electrónico/contraseña es bastante sencilla, ya que el SDK de administrador admite todas las operaciones necesarias. Sin embargo, en el caso de los proveedores, la documentación nos indica que manejemos el flujo de inicio de sesión manualmente y obtengamos algún token de Google o Facebook y luego lo enviemos a nuestro servidor nodejs. Entonces, cuando el token llega a nuestro servidor nodejs, la documentación proporciona un código que proviene del SDK del cliente.
Esta es una muestra de la documentación de firebase.
import { getAuth, signInWithCredential, GoogleAuthProvider } from "firebase/auth"; // Build Firebase credential with the Google ID token. const credential = GoogleAuthProvider.credential(id_token); // Sign in with credential from the Google user. const auth = getAuth(); signInWithCredential(auth, credential).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = GoogleAuthProvider.credentialFromError(error); // ... });donde el id_token (probablemente) proviene del cuerpo de la solicitud.
Este flujo funciona bien, pero usa el SDK del cliente en un entorno de servidor de nodejs porque el SDK de administración que está destinado a dicho entorno no admite este tipo de operación. Entonces, ¿está bien usar ambos SDK, donde se necesita, por supuesto, en un servidor nodejs?