From 6819b82723a9d844ca2694416e78ef8c5cdfc806 Mon Sep 17 00:00:00 2001 From: nicoagostini Date: Mon, 5 May 2025 18:17:35 -0700 Subject: [PATCH] Just a bug fix --- README.md | 9 ++++++--- app.js | 7 ++++++- src/auth/authentication.js | 4 ++-- src/router/user.js | 5 +++++ src/views/home.ejs | 1 + src/views/login.ejs | 4 ++++ src/views/partials/header.ejs | 11 ++++++++++- src/views/signup.ejs | 4 ++++ 8 files changed, 38 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 38a2b8e..aa462a5 100755 --- a/README.md +++ b/README.md @@ -54,9 +54,12 @@ Example: retirementCalculator/ ├── src/ │ ├── views/ -| ├── css/ -| ├── images/ -| └── scripts/ +│ │ └── partials/ +│ ├── css/ +│ ├── images/ +│ ├── scripts/ +│ └── utils/ +│ ├── app.js ├── .env.example ├── .gitignore diff --git a/app.js b/app.js index cc6a71b..8b997a5 100644 --- a/app.js +++ b/app.js @@ -72,7 +72,7 @@ app.get('/login', (req, res) => { }); app.get('/home', (req, res) => { - res.render('home'); + res.render('home', { session: req.session }); return res.status(status.Ok); }); @@ -106,6 +106,11 @@ app.get('/settings', (req, res) => { return res.status(status.Ok); }); +app.get('/logout', (req, res) => { + req.session.destroy(); + return res.redirect('/login'); +}); + app.get('/*splat', (req, res) => { res.send('404 Not Found'); return res.status(status.NotFound); diff --git a/src/auth/authentication.js b/src/auth/authentication.js index 2a2e9ed..f22b764 100644 --- a/src/auth/authentication.js +++ b/src/auth/authentication.js @@ -27,7 +27,7 @@ module.exports = (users) => { return res.redirect("/login"); } - if (!bcrypt.compare(req.body.password, user.password)) { + if (!bcrypt.compareSync(req.body.password, user.password)) { req.session.errMessage = "Incorrect password"; res.status(status.Unauthorized); return res.redirect("/login"); @@ -64,7 +64,7 @@ module.exports = (users) => { return res.redirect("/signup"); } - let hashedPassword = await bcrypt.hash(req.body.password, salt); + let hashedPassword = await bcrypt.hashSync(req.body.password, salt); users.insertOne({ email: req.body.email, diff --git a/src/router/user.js b/src/router/user.js index 5570874..3a2cdee 100644 --- a/src/router/user.js +++ b/src/router/user.js @@ -31,5 +31,10 @@ module.exports = (middleware) => { return res.status(status.Ok); }); + router.get('/logout', middleware, (req, res) => { + req.session.destroy(); + return res.redirect('/login'); + }); + return router; }; diff --git a/src/views/home.ejs b/src/views/home.ejs index 3bb7034..b354997 100644 --- a/src/views/home.ejs +++ b/src/views/home.ejs @@ -10,6 +10,7 @@ <%- include("./partials/header") %> + <% if (session.authenticated) { console.log(session.email); } else { console.log("No user"); } %>
The Dashboard Page
diff --git a/src/views/login.ejs b/src/views/login.ejs index d4b1b31..981b77c 100644 --- a/src/views/login.ejs +++ b/src/views/login.ejs @@ -44,6 +44,10 @@ +
+ + Register +
diff --git a/src/views/partials/header.ejs b/src/views/partials/header.ejs index ef3c1a1..28d4073 100644 --- a/src/views/partials/header.ejs +++ b/src/views/partials/header.ejs @@ -18,7 +18,16 @@
  • More -
  • + + <% if (session.authenticated) { %> +
  • + Logout +
  • + <% } else { %> +
  • + Login +
  • + <% } %> diff --git a/src/views/signup.ejs b/src/views/signup.ejs index 3f261c0..e19fc96 100644 --- a/src/views/signup.ejs +++ b/src/views/signup.ejs @@ -39,6 +39,10 @@ +
    + + Login +