2016-12-30 15 views
1

私はkeystonejsセッションでいくつかの助けが必要です。私はショッピングカートで作業しています。顧客がカートに商品を追加した後、チェックアウトページに移動して、ユーザーとしてサインインするよう強制します。ただし、サインインすると、セッションが再開され、カートの内容が消去されます。Keystonejsセッション

私の質問:サインインして既存のセッションを維持してから、セッションにユーザーIDを追加する方法はありますか?

私はconnect-mongoを使ってmongodbへのセッションを維持しています。

私はセッション に製品を追加し、ユーザーを認証するために

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

使用するreq.session.cartを書かれています。

よろしく私の知る限りは、リクエストオブジェクトに、キーストーンonly appends the user propertyを持つユーザーのサインインを伝えることができるよう

答えて

1

、それはreq.session.userIdに、ユーザーのMongoDBのIDを追加します。既存のセッションはクリアされません。現在、どのようにKeystoneセッションに追加していますか?

+0

私はconnect-mongoを使ってmongodbにセッションを残していますし、 'keystone.session.signin'を使ってユーザーに署名しています。ユーザーがサインインすると、現在のセッションが削除され、上記のようにユーザーIDを持つ新しいセッションに置き換えられたことに気付きました。 – Mendo

関連する問題