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

192
Vistas
¿req.user vuelve como indefinido con Express y Passport?

Cuando mi aplicación se redirige a "/", req.user no está definido, pero en la devolución de llamada de Twitter, req.user me proporciona los datos que estoy buscando. Pierdo los datos en la redirección. Todavía hay información en req para "/" pero no req.user que necesito.

¿Alguien puede ayudarme a resolver este problema?

Este es mi index.js

 const express = require('express') const app = express() const cookieSession = require('cookie-session') const passport = require('passport'); require('./passport') const isLoggedIn = require('./Middleware/auth') app.use(cookieSession({ name: 'twitter-auth-session', keys: ['key1', 'key2'] })) app.use(passport.initialize()); app.use(passport.session()); app.get('/auth/error', (req, res) => res.send('Unknown Error')) //, isLoggedIn, app.get('/', (req,res)=>{ console.log('HELLOOOOO', req.user) res.send(`Hello`) }); app.get('/logout', (req, res) => { req.session = null; req.logout(); res.redirect('/'); }) app.get('/auth/twitter',passport.authenticate('twitter')); app.get('/auth/twitter/callback',passport.authenticate('twitter', { failureRedirect: '/auth/error' }), function(req, res) { // console.log("REQUEST", req.user) res.redirect('/'); }); app.listen(8000,()=>{ console.log('Server is up and running at the port 8000') })

Este es mi middleware de pasaporte.js:

 const passport = require('passport'); const TwitterStrategy = require('passport-twitter').Strategy; passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(user, done) { done(null, user); }); passport.use(new TwitterStrategy({ consumerKey: "xxxxxxxxxxx", consumerSecret: "xxxxxxxxxxx", callbackURL: "http://www.localhost:8000/auth/twitter/callback", }, function(accessToken, refreshToken, profile, cb) { return cb(null, profile); }));
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ok, después de algunas pruebas y muchos errores, el problema parecía estar en la forma en que estaba usando las sesiones o la biblioteca de sesiones de cookies.

Agregué la biblioteca

 const session = require('express-session')

Cambié

 app.use(cookieSession({ name: 'twitter-auth-session', keys: ['key1', 'key2'] }))

a

 app.use(session({ secret: 'secret' }))

Y eso parece haber arreglado las cosas, en caso de que todos estén viendo esta respuesta realmente oscura, jaja.

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