Sfoglia il codice sorgente

Add error message for invalid login

Lee Morgan 6 anni fa
parent
commit
56bc37a993
3 ha cambiato i file con 28 aggiunte e 9 eliminazioni
  1. 23 9
      controllers/home.js
  2. 4 0
      views/landingPage/controller.js
  3. 1 0
      views/landingPage/landing.ejs

+ 23 - 9
controllers/home.js

@@ -12,7 +12,15 @@ const token = "b48068eb-411a-918e-ea64-52007147e42c";
 
 module.exports = {
     landingPage: function(req, res){
-        return res.render("landingPage/landing");
+        let error = {};
+        if(req.session.error){
+            error = req.session.error;
+            req.session.error = undefined;
+        }else{
+            error = undefined;
+        }
+
+        return res.render("landingPage/landing", {error: error});
     },
 
     displayInventory: function(req, res){
@@ -647,15 +655,21 @@ module.exports = {
     login: function(req, res){
         Merchant.findOne({email: req.body.email})
             .then((merchant)=>{
-                bcrypt.compare(req.body.password, merchant.password, (err, result)=>{
-                    if(result){
-                        req.session.user = merchant._id;
-                        return res.redirect("/inventory");
-                    }
+                if(merchant){
+                    bcrypt.compare(req.body.password, merchant.password, (err, result)=>{
+                        if(result){
+                            req.session.user = merchant._id;
+                            return res.redirect("/inventory");
+                        }
+                    });
+                }
 
-                    console.log(err);
-                    return res.redirect("/");
-                });
+                req.session.error = {
+                    type: "login",
+                    message: "Invalid email or password"
+                }
+
+                return res.redirect("/");
             })
             .catch((err)=>{
                 console.log(err);

+ 4 - 0
views/landingPage/controller.js

@@ -10,4 +10,8 @@ let controller = {
     }
 }
 
+if(error){
+    banner.createError(error.message);
+    error = undefined;
+}
 publicObj.display();

+ 1 - 0
views/landingPage/landing.ejs

@@ -42,6 +42,7 @@
             </div>
         </div>
 
+        <script>let error = <%- JSON.stringify(error) %>;</script>
         <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
         <script src="../shared/validation.js"></script>
         <script src="/landingPage/public.js"></script>