verifySession.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. const Merchant = require("./models/merchant.js")
  2. module.exports = function(req, res, next){
  3. if(req.session.user === undefined) {
  4. req.session.error = "PLEASE LOG IN";
  5. return res.redirect("/");
  6. }
  7. Merchant.findOne({"session.sessionId": req.session.user})
  8. .then((merchant)=>{
  9. if(merchant === null){
  10. throw "no merchant";
  11. }
  12. if(merchant.session.date < new Date()){
  13. let newExpiration = new Date();
  14. newExpiration.setDate(newExpiration.getDate() + 90);
  15. merchant.session.sessionId = helper.generateId(25);
  16. merchant.session.date = newExpiration;
  17. merchant.save();
  18. return res.redirect("/");
  19. }
  20. res.locals.merchant = merchant;
  21. return next();
  22. })
  23. .catch((err)=>{
  24. if(err === "no merchant"){
  25. req.session.error = "PLEASE LOG IN";
  26. return res.redirect("/");
  27. }
  28. return res.json("ERROR: UNABLE TO RETRIEVE DATA");
  29. });
  30. }