const jwt = require('jsonwebtoken'); const UserService = require('../services/userService'); const SECRET = process.env.JWT_SECRET; function generateToken(user) { return jwt.sign({ id: user._id, username: user.username }, SECRET, { expiresIn: '1d' }); } function authMiddleware(req, res, next) { const token = req.headers.authorization?.split(' ')[1]; if (!token) return res.sendStatus(401); try { const decoded = jwt.verify(token, SECRET); req.user = decoded; next(); } catch (err) { return res.sendStatus(403); } } async function getActiveUser(req) { if (!req.user?.username) return null; return await UserService.getUserByUsername(req.user.username); } module.exports = { generateToken, authMiddleware, getActiveUser };