2016-12-30 3 views
1

Мне нужна помощь в сеансах keystonejs. Я работаю над корзиной покупок, поэтому после того, как клиент добавляет товар в корзину, они перемещаются на страницу выписки, которая заставляет их войти в систему как пользователь. Однако, когда они подписываются, сеанс перезапускает и очищает содержимое тележки.Keystonejs session

Мой вопрос: есть способ входа в систему и сохранения существующего сеанса, а затем добавить идентификатор пользователя к сеансу.

Я продолжаю сессию в mongodb, используя connect-mongo.

Я написал req.session.cart, чтобы добавить продукты к сессии и использовать

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);// 

для авторизации пользователя.

С уважением

ответ

1

Насколько я могу сказать, пользователя с Keystone для входа в аккаунт only appends the user property к объекту запроса, и это добавляет пользователя MongoDB идентификатор req.session.userId. Он не очищает существующую сессию. Как вы сейчас добавляете к сеансу Keystone?

+0

Я продолжаю сеанс mongodb с помощью connect-mongo и используя 'keystone.session.signin' для подписи пользователя. Я заметил, что когда пользователь подписывается в текущем сеансе, удаляется и заменяется новым сеансом с идентификатором пользователя, как указано выше. – Mendo

Смежные вопросы