Gitlab@Informatics

Skip to content
Snippets Groups Projects
Select Git revision
  • b6310369386a1246e4ccbca4bee062a165ccba2a
  • main default protected
2 results

auth.js

Blame
  • 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;