From 6a91e8c201ad65103ea471ec8e21b4620d44f0ab Mon Sep 17 00:00:00 2001
From: 65160118 <65160118@go.buu.ac.th>
Date: Fri, 21 Mar 2025 16:42:37 +0700
Subject: [PATCH] 3 commit

---
 app.js                        | 7 +++++++
 controllers/authController.js | 8 ++++++--
 models/userModel.js           | 2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/app.js b/app.js
index d847cc6..747f507 100644
--- a/app.js
+++ b/app.js
@@ -40,6 +40,13 @@ app.use(session({
     saveUninitialized: true
 }));
 
+app.use((req, res, next) => {
+    if (!req.session.returnTo && req.method === "GET" && !req.path.startsWith('/login') && !req.path.startsWith('/register')) {
+        req.session.returnTo = req.originalUrl;
+    }
+    next();
+});
+
 // Database middleware
 app.use((req, res, next) => {
     req.db = db;
diff --git a/controllers/authController.js b/controllers/authController.js
index c856106..f84a068 100644
--- a/controllers/authController.js
+++ b/controllers/authController.js
@@ -35,13 +35,17 @@ exports.postLogin = async (req, res) => {
             return res.render('login', { error: 'อีเมลหรือรหัสผ่านไม่ถูกต้อง' });
         }
 
-        const isMatch = await bcrypt.compare(password, user.password);
+        const isMatch = await bcryptjs.compare(password, user.password);
         if (!isMatch) {
             return res.render('login', { error: 'อีเมลหรือรหัสผ่านไม่ถูกต้อง' });
         }
 
         req.session.user = user;
-        res.redirect('/'); // Changed from '/booklists' to '/' to redirect to home page
+        
+        // Redirect to saved URL or default to home
+        const returnTo = req.session.returnTo || '/';
+        delete req.session.returnTo;
+        res.redirect(returnTo);
     } catch (error) {
         res.render('login', { error: 'เกิดข้อผิดพลาดในการเข้าสู่ระบบ โปรดลองอีกครั้ง' });
     }
diff --git a/models/userModel.js b/models/userModel.js
index c1d778e..5acc545 100644
--- a/models/userModel.js
+++ b/models/userModel.js
@@ -6,7 +6,7 @@ module.exports = class User {
     }
 
     async register(username, email, password) {
-        const hashedPassword = await bcrypt.hash(password, 10);
+        const hashedPassword = await bcryptjs.hash(password, 10);
         return new Promise((resolve, reject) => {
             this.db.query(
                 'INSERT INTO users (username, email, password) VALUES (?, ?, ?)',
-- 
GitLab