const jwt = require('jsonwebtoken'); const verifyToken = (req, res, next) => { const token = req.headers.authorization?.split(' ')[1]; if (!token) { return res.status(403).json({ error: 'A token is required for authentication' }); } try { const decoded = jwt.verify(token, process.env.JWT_SECRET); req.user = decoded; // Contains { userId, role } } catch (err) { return res.status(401).json({ error: 'Invalid Token' }); } return next(); }; const isAdmin = (req, res, next) => { if (req.user.role !== 'ADMIN') { return res.status(403).json({ error: 'Admin access required' }); } return next(); }; module.exports = { verifyToken, isAdmin };