2016-12-30 21 views
1

我需要一些关于keystonejs会话的帮助。我正在购物车上工作,因此在客户将产品添加到购物车后,他们会转到检出页面,强制他们以用户身份登录。但是,他们登录会话时会重新启动并清除购物车的内容。Keystonejs会话

我的问题:有没有办法登录并保留现有会话,然后将用户ID添加到会话中。

我使用connect-mongo将会话持久保存到mongodb。

我写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

据我所知,用户与梯形登入only appends the user property请求对象,并增加了用户的MongoDB的ID来req.session.userId。它不清除现有的会话。您目前如何添加到Keystone会话?

+0

我使用connect-mongo并使用'keystone.session.signin'为用户签名以保持会话到mongodb。我注意到当用户登录时,当前会话被删除,并用上面指出的userid替换为新会话。 – Mendo