MIF_E31222519/API/routes/authRoutes.js

61 lines
1.8 KiB
JavaScript

const express = require('express');
const router = express.Router();
const jwt = require('jsonwebtoken');
const User = require('../models/User');
const Siswa = require('../models/Siswa');
router.post('/login', async (req, res) => {
try {
const { username, password } = req.body;
console.log("Request body:", req.body);
// Cari user berdasarkan username
const user = await User.findOne({ where: { username } });
if (!user || user.password !== password) {
return res.status(401).json({
status: "error",
message: "Username atau password salah"
});
}
let siswa;
// Cek apakah username diawali dengan "08" (nomor orangtua)
if (username.startsWith('08')) {
// Jika username diawali 08, cari siswa berdasarkan no_orangtua
siswa = await Siswa.findOne({ where: { no_orangtua: username } });
console.log('Mencari siswa dengan no_orangtua:', username);
} else {
// Jika tidak, cari siswa berdasarkan NISN
siswa = await Siswa.findOne({ where: { nisn: username } });
console.log('Mencari siswa dengan NISN:', username);
}
if (!siswa) {
return res.status(404).json({
status: "error",
message: "Data siswa tidak ditemukan"
});
}
// Generate token
const token = jwt.sign({ id_siswa: siswa.id_siswa }, 'secret_key');
res.json({
status: "success",
message: "Login successfully",
token: token
});
} catch (error) {
res.status(500).json({
status: "error",
message: "Terjadi kesalahan pada server",
error: error.message
});
}
});
module.exports = router;