Spaces:
Running
Running
File size: 723 Bytes
3c21989 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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 }; |