Fehler: Fehler beim serialisieren Benutzer in die Sitzung. Falsche Funktion übergeben serializeUser()?

Ich versuche meine ersten Schritte mit dem Express-framework für Node. Ich war zu versuchen, einen winzigen-Authentifizierung beispielsweise mithilfe von Passport. Aber ich kann es nicht arbeiten; ich erhalte die Fehlermeldung: Error: failed to serialize user into session.

Ich installiert node-inspector, um zu versuchen, um zu sehen, was Los ist. Offenbar, meine Serialisierung-Funktion aufgerufen wird, und es führt done(null, 0) als erwartet. Ich habe versucht, einen Blick auf Pass-code, aber ich konnte nicht verstehen, was das problem ist. Das ist so ziemlich mein Erster Versuch einer Knoten-Anwendung, also bin ich nicht vertraut mit dem code. Kann jemand mir einen Tipp geben? Danke.

var express = require('express');
var jade = require('jade');

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

var app = express();

/*
 * Settings
 */

app.configure(function(){
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');

    app.use(express.logger());
    app.use(express.cookieParser());
    app.use(express.bodyParser());
    app.use(express.session({ secret: 'cat in the bag' }));
    app.use(passport.initialize());
    app.use(passport.session());

    passport.use(new LocalStrategy(
        function(username, password, done) {
            done(null, { id: 0, username: 'juancito' });
        }
    ));

    passport.serializeUser(function(user, done) {
        done(null, user.id);
    });

    passport.deserializeUser(function(id, done) {
        done(null, 'juancito');
    });
});



/*
 * Routes
 */

app.get('/', function(req, res) {
    res.render('index', { title: 'Welcome!' });
});

app.get('/login', function(req, res) {
    if (req.user)
        return res.redirect('/');

    res.render('login', { title: 'Log in' });
});

app.post('/login',
    passport.authenticate('local', {
        successRedirect: '/',
        failureRedirect: '/login'
    })
);

app.get('/logout', function(req, res) {
    req.logOut();
    res.redirect('/');
});

app.listen(3000);
console.log('Listening on port 3000.');
  • Downvoted, denn dies ist ein häufiges symptom, aber dies ist eine fremde Ursache (id == 0). Meine ids (wie die meisten Menschen-ids) sind alle nicht-0, und ich bin noch immer dieser Fehler.
Schreibe einen Kommentar