Select Git revision
authController.js
authController.js 1.84 KiB
const db = require('../config/database');
const bcrypt = require('bcryptjs');
exports.register = async (req, res) => {
const { name, email, password } = req.body;
try {
const [existingUser] = await db.query('SELECT * FROM users WHERE email = ?', [email]);
if (existingUser.length > 0) {
return res.status(400).json({ message: 'Email นี้ถูกใช้ไปแล้ว' });
}
const hashedPassword = await bcrypt.hash(password, 10);
await db.query('INSERT INTO users (name, email, password) VALUES (?, ?, ?)', [name, email, hashedPassword]);
res.status(201).json({ message: 'ลงทะเบียนสำเร็จ' });
} catch (error) {
res.status(500).json({ message: 'เกิดข้อผิดพลาด', error });
}
};
exports.login = async (req, res) => {
const { email, password } = req.body;
try {
const [user] = await db.query('SELECT * FROM users WHERE email = ?', [email]);
if (user.length === 0) {
return res.status(400).json({ message: 'อีเมลหรือรหัสผ่านไม่ถูกต้อง' });
}
const isMatch = await bcrypt.compare(password, user[0].password);
if (!isMatch) {
return res.status(400).json({ message: 'อีเมลหรือรหัสผ่านไม่ถูกต้อง' });
}
// เก็บ session หลังจากล็อกอิน
req.session.userId = user[0].id;
req.session.userEmail = user[0].email;
res.status(200).json({ message: 'เข้าสู่ระบบสำเร็จ' });
} catch (error) {
res.status(500).json({ message: 'เกิดข้อผิดพลาด', error });
}
};
exports.logout = (req, res) => {
req.session.destroy(() => {
res.json({ message: 'ออกจากระบบสำเร็จ' });
});
};