Fehler: Benutzer konnte nicht in Sitzung serialisiert werden. Falsche Funktion an serializeUser () übergeben?

8

Ich versuche meine ersten Schritte mit dem Express-Framework für Node zu machen. Ich habe versucht, ein kleines Authentifizierungsbeispiel mithilfe von Passport zu implementieren. Ich kann es jedoch nicht funktionieren lassen; Ich bekomme immer den Fehler: Error: failed to serialize user into session .

Ich habe node-inspector installiert, um zu sehen, was passiert. Scheinbar wird meine Serialisierungsfunktion aufgerufen und führt done(null, 0) wie erwartet aus. Ich habe versucht, einen Blick auf den Passport-Code zu werfen, aber ich konnte nicht verstehen, was das Problem ist. Dies ist so ziemlich mein erster Versuch einer Node-Anwendung, daher kenne ich den Code nicht. Kann mir jemand einen Hinweis geben? Danke.

%Vor%     
Pablo Antonio 22.10.2012, 09:53
quelle

2 Antworten

11

Das Problem besteht darin, dass 0 in JavaScript ein false-y-Wert ist. Daher denkt Passport, dass Sie Ihren Benutzer nicht serialisiert haben.

%Vor%

Ich würde empfehlen, Benutzer-IDs bei 1 zu beginnen (was in SQL-Datenbanken geschieht), oder (wenn Sie wirklich Ganzzahlen benötigen, die bei 0 beginnen), sie als Strings für die Sitzung zu serialisieren.

%Vor%     
Jared Hanson 23.10.2012, 17:46
quelle
5

Vielleicht sollten Sie Ihre serialize / deserialize Callbacks vor dem Aufruf von pass.initialize () und pass.session ().

zuweisen %Vor%     
Olivier Lalonde 23.10.2012 06:43
quelle

Tags und Links