auth.js 1.14 KB
const express = require('express');
const bcrypt = require('bcryptjs');
const router = express.Router();

// Demo user - ganti dengan database di produksi
const users = [
  {
    id: 1,
    username: 'admin',
    // password: admin123
    password: '$2a$10$LgTTRN55c116lZ4HsBPnlOw/k6SoJLJ7WoHSGOKoPyMKa1WWdwYTy'
  }
];

router.get('/', (req, res) => {
  if (req.session.user) return res.redirect('/dashboard');
  res.redirect('/login');
});

router.get('/login', (req, res) => {
  if (req.session.user) return res.redirect('/dashboard');
  res.render('login', { title: 'Login' });
});

router.post('/login', async (req, res) => {
  const { username, password } = req.body;
  const user = users.find(u => u.username === username);

  if (!user || !(await bcrypt.compare(password, user.password))) {
    req.flash('error', 'Username atau password salah');
    return res.redirect('/login');
  }

  req.session.user = { id: user.id, username: user.username };
  req.flash('success', `Selamat datang, ${user.username}!`);
  res.redirect('/dashboard');
});

router.get('/logout', (req, res) => {
  req.session.destroy();
  res.redirect('/login');
});

module.exports = router;