Select Git revision
auth.js 2.28 KiB
// routes/auth.js
const express = require('express');
const router = express.Router();
const bcrypt = require('bcrypt');
const db = require('../db');
router.get('/login', (req, res) => {
res.render('auth/login', { error: null });
});
router.post('/login', async (req, res) => {
const { username, password } = req.body;
try {
// เปลี่ยนจาก `user` เป็น `users`
const [users] = await db.query('SELECT * FROM users WHERE username = ?', [username]);
if (users.length === 0) {
return res.render('auth/login', { error: 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง' });
}
const user = users[0];
const validPassword = await bcrypt.compare(password, user.password);
if (!validPassword) {
return res.render('auth/login', { error: 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง' });
}
req.session.user = user;
res.redirect('/index');
} catch (error) {
console.error('ข้อผิดพลาดในการล็อกอิน:', error);
res.render('auth/login', { error: 'เกิดข้อผิดพลาดในการล็อกอิน' });
}
});
router.get('/register', (req, res) => {
res.render('auth/register', { error: null });
});
router.post('/register', async (req, res) => {
const { username, email, password, phone, f_name, l_name, } = req.body;
try {
const hashedPassword = await bcrypt.hash(password, 10);
await db.query(
`INSERT INTO users
(username, email, password, phone, f_name, l_name, role)
VALUES (?, ?, ?, ?, ?, ?,'member')`,
[username, email, hashedPassword, phone, f_name, l_name]
);
res.redirect('/auth/login');
} catch (error) {
console.error('ข้อผิดพลาดในการสมัครสมาชิก:', error);
res.render('auth/register', { error: 'เกิดข้อผิดพลาดในการสมัครสมาชิก' });
}
});
router.get('/logout', (req, res) => {
req.session.destroy((err) => {
if (err) console.error('ข้อผิดพลาดในการออกจากระบบ:', err);
res.redirect('/');
});
});
module.exports = router;