const jwt = require('jsonwebtoken'); const User = require('../models/User'); const authGuard = async (req, res, next) => { const header = req.headers.authorization; if (!header || !header.startsWith('Bearer ')) { return res.status(401).json({ message: 'No token, authorisation denied' }); } const token = header.split(' ')[1]; try { const decoded = jwt.verify(token, process.env.JWT_SECRET); const user = await User.findById(decoded.id).select('-password -adminPin'); if (!user || !user.active) { return res.status(401).json({ message: 'User not found or deactivated' }); } req.user = user; next(); } catch (err) { return res.status(401).json({ message: 'Token invalid or expired' }); } }; module.exports = authGuard;