Me cuesta entender la autenticación de Firebase en el lado del cliente/servidor y tengo la siguiente pregunta.
Tengo una página login.html con un formulario de inicio de sesión y un botón de envío. En el evento de clic del botón, tengo un JavaScript para hacer una validación del cliente y realizar la autenticación):
btnSignIn.addEventListener('click', e => { // Get email/pass const email = inputEmail.value; const pass = inputPassword.value; /* to-do some validation and then sign in */ // Sign in const promise = firebase.auth().signInWithEmailAndPassword(email, pass) promise.catch(e => console.log(e.message)) } });Esto está funcionando muy bien hasta ahora. Ahora, una vez que el usuario haya iniciado sesión, quiero redirigir a la página home.html, pero dado que esta página debe estar protegida por usuarios autorizados, ¿debo enviar el token al servidor (que es una aplicación Flask)?
¿Cómo envío el token de JS a mi aplicación Flask? Vi en los documentos de Firebase que el camino a seguir es a través de ajax. Según la documentación, así es como debo enviar el token, pero no estoy seguro de cómo implementarlo.
firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) { // Send token to your backend via HTTPS // ... }).catch(function(error) { // Handle error });Mi aplicación Flask de prueba:
@app.route('/') @app.route('/home') def home(): return render_template("home.html") @app.route('/login', methods=['GET', 'POST']) def login(): return render_template("login.html")No puede simplemente transferir el token de su código js al matraz.
Lo que sugiero que hagas es implementar firebase en tu código python backend en lugar de tu código js frontend. Para comenzar a usar el sdk de firebase de python, recomiendo usar docs . Ese enlace apunta a los documentos de autenticación, ya que su pregunta está relacionada con la autenticación. Debe seleccionar python como el tipo de código con el que le gustaría trabajar al ver los documentos.
Aquí también hay un video de YouTube sobre la autenticación de base de fuego con matraz que realmente me gustó: https://www.youtube.com/watch?v=FCw5PFDb99k