import { Request, Response, NextFunction } from 'express'; import jwt from 'jsonwebtoken'; declare global { namespace Express { interface Request { user?: { id: string; email: string; perfil: string; }; } } } export const extractUser = (req: Request, res: Response, next: NextFunction) => { try { const token = req.headers.authorization?.replace('Bearer ', ''); if (!token) { return res.status(401).json({ error: "Token não fornecido" }); } const decoded = jwt.verify(token, process.env.JWT_SECRET || 'default-secret') as jwt.JwtPayload; req.user = { id: decoded.id, email: decoded.email, perfil: decoded.perfil }; next(); } catch (error) { return res.status(401).json({ error: "Token inválido" }); } };