2016-12-30 7 views
1

Ich brauche etwas Hilfe mit Keystonejs Sitzungen. Ich arbeite an einem Einkaufswagen, und nachdem ein Kunde ein Produkt in den Einkaufswagen gelegt hat, werden sie auf eine Auscheck-Seite weitergeleitet, auf der sie sich als Benutzer anmelden müssen. Wenn sie sich jedoch in der Sitzung anmelden, wird der Inhalt des Einkaufswagens neu gestartet und gelöscht.Keystonejs Sitzung

Meine Frage: Gibt es eine Möglichkeit, sich anzumelden und die vorhandene Sitzung beizubehalten und dann die Benutzer-ID zur Sitzung hinzuzufügen.

Ich behalte die Sitzung zu mongodb mit connect-mongo.

habe ich req.session.cart geschrieben, um die Produkte in die Sitzung hinzuzufügen und

view.on('post', { action: 'login' }, function (next) { 

    if (!req.body.email || !req.body.password) { 
     req.flash('error', { detail: 'Please enter your email and password.' }); 
     return next(); 
    } 

    var onSuccess = function() { 
     req.flash('success', { detail: 'Great you are now logged in!' }); 
     res.redirect('/checkout');//redirect on success 
    } 

    var onFail = function() { 
     req.flash('error', { detail: 'Input credentials were incorrect, please try again.' }); 
     return next(); 
    } 

    keystone.session.signin({ email: req.body.email, password: req.body.password }, req, res, onSuccess, onFail);// 

um den Benutzer zu autorisieren zu verwenden.

Grüße

Antwort

1

Soweit ich das beurteilen kann, Benutzer signin mit Keystone only appends the user property auf das Request-Objekt, und es fügt den zu req.session.userId MongoDB-ID des Benutzers. Die vorhandene Sitzung wird nicht gelöscht. Wie fügen Sie derzeit zur Keystone-Sitzung hinzu?

+0

Ich behalte die Sitzung zu mongodb mit connect-mongo und mit 'keystone.session.signin', um den Benutzer zu signieren. Ich habe festgestellt, dass wenn der Benutzer sich in der aktuellen Sitzung anmeldet, wird entfernt und durch die neue Sitzung mit Benutzer-ID ersetzt, wie Sie oben angegeben. – Mendo

Verwandte Themen