2016-12-30 62 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