Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

205
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!