i facing issue trying set cookie value inside middleware after request calls using bluebird promises, getting error " error: can't set headers after sent ",
my code
user.autologin(req, cookietoken).then(function(apiresponse) { console.log("autologin response"); console.log(apiresponse.autologin); return apiresponse.autologin; }).then(function(apiresponse) { if (apiresponse.success === true) { var returnuser = {}; returnuser = apiresponse.metadata.user; returnuser.isuser = 1; returnuser.cartitemscount = apiresponse.metadata.no_of_items_cart || 0; returnuser.checkoutstep = 2; var upsesreq = { "al": "1", "userid": returnuser.id_customer }; var sessupdate = user.updatesession(req, upsesreq); sessupdate.then(function(sesres) { console.log(sesres); if (sesres.success === true) { req.login(returnuser, function (err) { if (err) { console.log(err); forcelogout = true; logerror(err); } else { forcelogout = false; /* userevents.on('loginsuccess', function(req, res){ useractivitylistener.setautologincookie(req, res); }); */ console.log("auto login succcessful"); sails.log.verbose("autologin success full user"); req.session.totaljabongcredit = returnuser.total_store_credits || 0; var expirationtime = new date(date.now() + (180 * 24 * 60 * 60 * 1000)); res.cookie('xxxx', req.session.token, { expires: expirationtime, httponly: true }); autologin = true; //useractivitylistener.setautologincookie(req, res); //userevents.loginsuccess(req, res); } }); console.log("after login session"); console.log(req.session); console.log("after login session"); } else { if (!isempty(sesres.err)) { logerror(sesres.err); forcelogout = true; } else { logerror(sesres.message); forcelogout = true; } } }).catch(function(err) { logerror(err); forcelogout = true; }); } }).error(function(err) { logerror(err); forcelogout = true; }).catch(function(err) { logerror(err) forcelogout = true; }); i getting error when trying set cookie. in autologin call calling apis , based in result promise object going forward. did not used res.end() in methods autologin. please let me know causing issue?
looks happens in:
var sessupdate = user.updatesession(req, upsesreq); it runs in parallel
sessupdate.then(function(sesres) { ..... }
Comments
Post a Comment