Tengo el siguiente controlador de solicitudes que iniciaría sesión en un usuario con Firebase. Tras iniciar sesión correctamente, me gustaría redirigir al usuario a otra página.
¿Cambiaría window.location a otra página dentro de la función javascript (document).ready()? ¿O implementaría el cambio aquí, con res.redirect (que sí probé) pero no sucedió nada, solo obtuve un código de estado dentro de la consola?
app.post('/api/sign-in', function (req, res, next) { firebase.auth().signInWithEmailAndPassword(req.body.email, req.body.password).then(function (user) { console.log('a new user has signed in! their e-mail address: ' + user.email + ' | User ID: ' + user.uid) }).catch(function (error) { console.log(error) }) })Llamar:
$("#sign-in").on('click', function (event) { event.preventDefault() $.ajax({ url: '/api/sign-in', method: 'POST', data: { email: $('#email').val(), password: $('#password').val() } }); });Como dijo George, si está haciendo una publicación de ajax, no se redirigirá.
Tal vez algo como esto podría ayudarte:
app.post('/api/sign-in', function (req, res, next) { firebase.auth().signInWithEmailAndPassword(req.body.email, req.body.password).then(function (user) { res.send({ redirect: '/profile' }) }).catch(function (error) { console.log(error) })})JavaScript:
$(document).ready(function () { $('#sign-in').click(function () { event.preventDefault() $.ajax({ url: '/api/sign-in', method: 'POST', dataType: 'json', success: function (data, textStatus, jqXHR) { if (typeof data.redirect === 'string') { window.location = data.redirect; } } }); }); });Espero que pueda ser útil.