我需要一些有关 keystonejs session 的帮助。我正在开发购物车,因此在客户将产品添加到购物车后,他们会转到结帐页面,强制他们以用户身份登录。但是,当他们登录时, session 将重新启动并清除购物车的内容。
我的问题:有没有办法登录并保留现有 session ,然后将用户 ID 添加到 session 中。
我使用 connect-mongo 将 session 持久保存到 mongodb。
我已经编写了 req.session.cart
将产品添加到 session 中
并使用
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);//
授权用户。
问候
最佳答案
据我所知,用户使用 Keystone only appends the user
property 登录添加到请求对象,并将用户的 MongoDB ID 添加到 req.session.userId
中。它不会清除现有 session 。您目前如何添加到 Keystone session ?
关于session - Keystonejs session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41403867/