Как я могу получить доступ к пользовательским значениям для моего приложения - PullRequest
0 голосов
/ 08 марта 2020

Когда я печатаю req.user в '/login', он работает хорошо, но когда я использую тот же код в других действиях ('/', '/profile и т. Д. c ...), он не работает

//GET login
router.get('/login', (req, res, next)=>{

  var messageLoginErr = req.flash('signinError')
  res.render('login', {messages : messageLoginErr}); 
});


router.post('/login', passport.authenticate('local', {
  session: false,
  //successRedirect: '/',
  failureRedirect: '/login',
  //failureFlash: true,
}),
  function(req, res, next){
    res.json({email : req.user.email})
  }
);

// // /* GET home page. */
router.get('/', function (req, res, next) {
  res.json({email : req})
});
});

1 Ответ

0 голосов
/ 08 марта 2020

Не видя настройки вашего паспорта, я могу предположить, что проблема заключается в следующем:

/* assuming you're using passport-local along with passport, as well as the 
standard library express-session, and have defined a User model */
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const expressSession = require('express-session');
const User = require('./models/user');


passport.use(User.createStrategy());

// use static authenticate method of model in LocalStrategy
passport.use(new LocalStrategy(User.authenticate()));

/* this is where I think the issue might be, that maybe the User hasn't been serialized */
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

Я новичок, поэтому я не смог прокомментировать просьбу о разъяснении. Если кто-то хочет редактировать, go прямо сейчас.

...