Puedo iniciar sesión en mi aplicación usando Google Auth de Firebase. Sin embargo, parece que no puedo hacer que ninguna parte del objeto Usuario aparezca en la parte frontal de mi aplicación (estoy usando plantillas Pug). ¿Cómo puedo conseguir esto?
Este es el código que estoy usando para iniciar la sesión del usuario en mi aplicación web usando Google Auth:
document.getElementById('LogInButton').addEventListener('click', (e) => { signInWithPopup(auth, provider) .then((result) => { // This gives you a Google Access Token. You can use it to access the Google API. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; // The signed-in user info. const user = result.user; // ... window.setTimeout(() => { location.assign('/dashboard'); }, 1500); }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.email; // The AuthCredential type that was used. const credential = GoogleAuthProvider.credentialFromError(error); // ... }); });Me gustaría poder hacer referencia a la variable "usuario" en mis archivos .pug en toda la aplicación. En este momento, tengo un archivo viewController donde puedo pasar datos, por ejemplo:
exports.getSignIn = (req, res) => { res.status(200).render('signin', { title: `Sign in`, }); };¿Hay alguna manera de pasar el objeto de usuario de index.js a mi viewController para que esté disponible en la plantilla Pug? Estoy bastante perdido. Cualquier ayuda sería agradecida.
El problema aquí es doble:
No veo ninguna solución enlatada para este segundo paso, pero normalmente buscaría una forma de llamar a la representación pug desde dentro de la devolución de llamada (entonces, donde ahora tiene location.assign('/dashboard') ).
También vea esta pregunta similar: