const jwt = require('jsonwebtoken'); const JWT_SECRET = process.env.JWT_SECRET || 'amk-pos-secret-key-2024'; // Verify token middleware function verifyToken(req, res, next) { const token = req.headers['authorization']?.split(' ')[1]; if (!token) { return res.status(401).json({ error: 'No token provided' }); } try { const decoded = jwt.verify(token, JWT_SECRET); req.user = decoded; next(); } catch (error) { return res.status(401).json({ error: 'Invalid token' }); } } // Admin only middleware function adminOnly(req, res, next) { if (req.user.role !== 'admin') { return res.status(403).json({ error: 'Admin access required' }); } next(); } // Generate token function generateToken(user) { return jwt.sign( { id: user.id, username: user.username, role: user.role }, JWT_SECRET, { expiresIn: '24h' } ); } module.exports = { JWT_SECRET, verifyToken, adminOnly, generateToken };