Spaces:
Running
Running
| 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 }; |