Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • 910f6afaf229ab415ff66fe7e6f16e435abc833f
  • master default protected
2 results

index.js

Blame
  • 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: 'ออกจากระบบสำเร็จ' });
      });
    };