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

211
Vistas
Quiero redirigir al tablero si el usuario ya inició sesión cuando intenta acceder a la ruta de inicio de sesión en express js

Quiero redirigir al tablero si el usuario ya inició sesión cuando intenta acceder a la ruta de inicio de sesión en express js

software intermedio

 const isAuthenticate = async (req, res, next) => { const token = req.cookies.jwt; if (token) { jwt.verify(token, "thisisjwtsecret", async (err, token_decode) => { if (!err) { const u_id = token_decode._id; const userData = await User.findOne({ _id: u_id }); req.user = userData; req.isAuth = true; next(); } else { res.redirect("/user/login"); } }); } else { res.redirect("/user/login"); } };

Ruta.js

 // Auth Controller const AuthController = require("../../controllers/auth/AuthController"); const { isAuthenticate } = require("../../middlewares/isAutheticated"); router.get("/user/login", isAuthenticate, AuthController.login); router.post("/user/login", AuthController.checkLogin); router.get("/user/register", isAuthenticate, AuthController.createUser); router.post("/user/register", isAuthenticate, AuthController.storeUser); module.exports = router;

Función de inicio de sesión

 // Showing Login Page to User const login = (req, res) => { return res.render("auth/login"); };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede dividir la funcionalidad de su función isAuthenticate() existente para que solo devuelva un resultado y luego utilícelo para hacer algo como esto:

 const { promisify } = require('util'); const verify = promisify(jwt.verify); // resolves if jwt cookie verifies and user found // rejects if jwt cookie is missing or doesn't verify or user not found async function isLoggedIn(req) { const token = req.cookies.jwt; if (!token) throw new Error("no jwt cookie"); const token_decode = await verify(token, "thisisjwtsecret"); let user = await User.findOne({ _id: token_decode._id }); if (!user) throw new Error("user not found"); return; } // Showing Login Page to User // Or redirect to /dashboard if already logged in const login = async (req, res) => { try { await isLoggedIn(req); // already logged in, redirect to dashboard // you MUST make sure that /dashboard does not redirect to /user/login itself // when isLoggedIn resolves to avoid circular redirects res.redirect("/dashboard"); } catch (e) { // not logged in, render the login page res.render("auth/login"); } };

La isLoggedIn(req) se resuelve si el token se valida y el usuario se encuentra en la base de datos. De lo contrario, se rechaza. Luego puede usar eso en otras rutas para decidir si desea redirigir o no.

about 4 years ago · Juan Pablo Isaza Denunciar
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