Ich habe ein Formular, mit dem Benutzer ihre Profilinformationen aktualisieren können, die mit Daten von req.user
über PassportJS gefüllt sind.
Das Problem ist, dass, wenn ich den Wert, der user.username
entspricht, aktualisieren, ich die folgende Fehlermeldung bekomme:
Ab Zeile 6 in diesem Codeschnipsel:
%Vor% Ich nehme an, es liegt daran, dass ich in serializeUser
user.username
verwende, um es in die Session zu laden:
Weiß jemand, wie man das umgehen kann oder ist es ein hartnäckiges Problem mit Passport?
Der Code, den ich habe, sieht generisch wie folgt aus:
%Vor%UPDATE:
Pro Kommentaranforderung lautet die Fehlermeldung von findOne
in serializeUser
beim Aufruf null
, also ist es nicht die Abfrage, die das Problem darstellt.
Da username
ein veränderbarer Wert ist, sollten Sie ihn nicht als Session-Cookie-Schlüssel verwenden.
Ich empfehle dringend die Verwendung von user._id
als unveränderten Wert, so dass der Server den aktuellen Benutzer immer noch "kennt", auch wenn der Benutzername geändert wurde . Überprüfen Sie die offiziellen Kategorien , sie verwenden auch id
als Session-Cookie-Schlüssel.
Übrigens, selbst wenn Sie username
verwenden, sollten Sie NULL nach passport.deserializeUser()
suchen:
Bitte aktualisieren Sie Ihren Code auf Pass deserialize funtion. Sie haben nicht geprüft, der Benutzer ist verfügbar oder nicht. Wenn kein Benutzer gefunden wurde, haben Sie diesen Fehler & gt;
%Vor%Tags und Links node.js express passport.js