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

184
Views
Mi aplicación de autenticación no guarda datos en la sesión

Creando la aplicación Auth usando express mangosta y pasaporte js. después de agregar la verificación de correo usando el servidor nodemailer, se detuvo la adición del usuario de req.user a res.locals.currentUser se puede ver desde el middleware. antes de agregar la verificación por correo electrónico, funcionaba correctamente.

 app.use(express.urlencoded({ extended: true })); app.use(session(sessionObject)); app.use(flash()); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); app.use((req, res, next) => { res.locals.currentUser = req.user; res.locals.success = req.flash("success"); res.locals.error = req.flash("error"); next(); }); app.get("/", (req, res) => { console.log(res.locals); res.render("index"); }); app.get("/login", (req, res) => res.render("login")); app.post( "/login", passport.authenticate("local", { failureFlash: true, failureRedirect: "/login", }), (req, res) => { req.flash("success", "Welcome Back!"); res.redirect("/"); console.log(req.user); } );

código fuente

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

El problema era: estaba trabajando en un entorno local y había configurado la cookie de sesión para secure .

Dado que Localhost se ejecuta en HTTP y no en HTTPS, el navegador no enviaba la cookie de sesión a la aplicación después de que la aplicación fuera redirigida, lo que impedía que Passport cargara los datos de la sesión y creara la clave de req.user .

over 4 years ago · Santiago Trujillo Report

0

Todo en req y res caduca al final de la solicitud, solo req.session se escribe en el almacén de sesiones ( sessionObject ) y desde allí se transfiere a la siguiente solicitud.

Si desea mantener al usuario actual en la sesión, escríbalo en req.session.currentUser . Luego necesita passport.js y req.user solo durante la primera solicitud, donde se establece la sesión.

over 4 years ago · Santiago Trujillo 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!