// controllers/authController.js
const jwt = require("jsonwebtoken");
async function login(req, res) {
try {
const { username, password } = req.body;
const user = await usersModel.findByUsername(username);
if (!user) return res.status(401).json({ error: "invalid credentials" });
const ok = await bcrypt.compare(password, user.password_hash);
if (!ok) return res.status(401).json({ error: "invalid credentials" });
const token = jwt.sign(
{ sub: user.id, username: user.username },
process.env.JWT_SECRET,
{ expiresIn: process.env.JWT_EXPIRES_IN }
);
res.status(200).json({ token, username: user.username });
} catch (err) {
res.status(500).json({ error: "Server error" });
}
}