我的问题非常类似于这个问题 https://stackoverflow.com/questions/16434893/node-express-passport-req-user-undefined然而答案似乎对我不起作用(我看到用户也从未选择过答案)。
我全新安装了 Nodejs 和 Express。
我的设置:
app.use(express.static(path.join(__dirname, 'public')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser('hithere'));
app.use(session({
secret: 'hithere',
resave: false,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());
passport.serializeUser(function(user, done) {
console.log('Serialize user called.');
return done(null, user);
});
passport.deserializeUser(function(id, done) {
console.log('Deserialize user called.');
return done(null, user);
});
passport.use(new LocalStrategy(
function(username, password, done) {
console.log('local strategy called with: %s', username);
return done(null, {username:username, password:password});
}));
app.use('/', routes);
app.use('/users', users);
app.get('/success', function(req, res) {
req.send('sucess!');
});
app.get('/failure', function(req, res) {
req.send('failure!');
})
app.post('/register', function(req, res) {
console.log(req.body);
});
app.post('/signup', passport.authenticate('local', { successRedirect: '/success', failureRedirect: '/failure' }));
我在用着快速会话 https://github.com/expressjs/session.
我的 LocalStrategy、序列化和反序列化用户都被调用,但坦率地说,我不太确定在这个测试应用程序的反序列化功能上放置什么。
有修复建议吗?