Files
advx/src/server/authMiddleware.ts
T
2025-04-10 23:07:21 -03:00

34 lines
819 B
TypeScript

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" });
}
};