diff --git a/app.js b/app.js index d847cc64b616113b21c7f6990dd32ac833828378..747f507e9a5a71c34b95c10144576bf0b6a95261 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 c85610631f0215ca935a96e38725303016171bbe..f84a06851e6b5de1dd2257096cfa81e782e31a21 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 c1d778ef8d1da15edeaadfa765ce90416c828651..5acc545a83cc566fd59759aa489d6887d7e79211 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 (?, ?, ?)',