// src/middleware/auth.middleware.js const jwt = require('jsonwebtoken'); const config = require('../config/config'); const { User } = require('../models'); const authMiddleware = async (req, res, next) => { try { const authHeader = req.headers.authorization; if (!authHeader || !authHeader.startsWith('Bearer ')) { return res.status(401).json({ message: 'Authentication token is required' }); } const token = authHeader.split(' ')[1]; const decoded = jwt.verify(token, config.jwt.secret); const user = await User.findByPk(decoded.id, { attributes: { exclude: ['password'] } }); if (!user || !user.isActive) { return res.status(401).json({ message: 'User not found or inactive' }); } req.user = user; next(); } catch (error) { return res.status(401).json({ message: 'Invalid token' }); } }; module.exports = authMiddleware;