Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

205
Vistas
Intentando mostrar diferentes elementos de navegación en función de si un usuario ha iniciado sesión

Estoy tratando de configurar un sitio para que cuando un usuario inicie sesión, la barra de navegación muestre "cerrar sesión" y, si el usuario no ha iniciado sesión, mostrará "registro" e "inicio de sesión". En este momento, a través del insomnio, he probado que el inicio de sesión funciona correctamente y llega a la ruta. El manillar simplemente no parece actualizarse en función de si la sesión está iniciada o no. Cualquier ayuda es muy apreciada, y avíseme si necesita más información sobre algo.

 {{#if loggedIn}} <button class="button is-light" id="logout">logout</button> {{else}} <a href="http://localhost:3001/signup" class="button is-primary"> <strong>Sign up</strong> </a> <a href="http://localhost:3001/login"class="button is-light"> <strong>Log in</strong> </a> {{/if}}

Esta es la ruta configurada para el inicio de sesión del usuario

 ```router.post('/login', async (req, res) => { `try { const userData = await User.findOne({ where: { email: req.body.email } })` if (!userData) { res.status(400).json({ message: "Incorrect email or password."}); return; } const validPassword = await userData.checkPassword(req.body.password) if (!validPassword) { console.log("YO") res.status(400).json({ message: "Incorrect email or password."}) return; } req.session.save(() => { req.session.user_id = userData.id; req.session.loggedIn = true; res.json({ user: userData, message: 'You are now logged in!' }); });

} catch (err) { res.status(400).json(err)} })

Y, por último, este es el código server.js que muestra el uso de los datos de la sesión

 const sess = { secret: 'Super secret secret', cookie: {}, resave: false, saveUninitialized: true, store: new SequelizeStore({ db: sequelize }) }; app.use(session(sess)); ``` SCRIPT FOR LOGIN PAGE const loginFormHandler = async (event) => { event.preventDefault(); console.log("YO!!!!") const email = document.querySelector('#email-login').value.trim(); const password = document.querySelector('#password-login').value.trim(); if (email && password) { const response = await fetch('/api/users/login', { method: 'POST', body: JSON.stringify({email, password }), headers: { 'Content-Type': 'application/json' }, }); if (response.ok) { // If successful, redirect the browser to the profile page document.location.replace('/'); } else { alert(response.statusText); } } };
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda