Fix IP in ProvaService.ts and Add PUBLIC_URL

Signed-off-by: Rodrigo Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2025-04-11 13:29:26 -03:00
1 parent 8dfe0d6f94
commit b764c93106
7 files changed
+693 -287

No files matched your search

+82 -4
View File
@@ -175,15 +175,93 @@ router.get('/:id/status', async (req, res) => {
}
});
// Verificar documento
// Modificar a rota de verificação
router.get('/verificar/:hash', async (req, res) => {
try {
const { hash } = req.params;
// Capturar IP real usando a mesma lógica que funciona no processamento
const realClientIP = req.headers['x-forwarded-for']?.toString().split(',')[0].trim() ||
req.ip ||
req.socket?.remoteAddress ||
'127.0.0.1'; // Nunca usar 0.0.0.0
const clientPort = req.socket?.remotePort?.toString() || '0';
// Registrar para debug
console.log('Verificação de prova solicitada:', {
hash,
realClientIP,
clientPort,
headers: {
'x-forwarded-for': req.headers['x-forwarded-for'],
'user-agent': req.headers['user-agent']
}
});
const provaService = new ProvaService();
const result = await provaService.verifyFile(hash);
res.json(result);
// Adicionar informações de verificação ao resultado
return res.status(200).json({
...result,
verificacao: {
timestamp: new Date().toISOString(),
ip: realClientIP,
porta: clientPort
}
});
} catch (error) {
console.error('Erro ao verificar documento:', error);
res.status(500).json({ error: 'Erro ao verificar documento' });
console.error('Erro ao verificar arquivo:', error);
return res.status(500).json({
verified: false,
message: `Erro ao verificar: ${error.message}`
});
}
});
// Modificar a rota de verificação pública
router.get('/public/verificar/:hash', async (req, res) => {
try {
const { hash } = req.params;
// Capturar IP real usando headers
const realClientIP = req.headers['x-forwarded-for']?.toString().split(',')[0].trim() ||
req.ip ||
req.socket?.remoteAddress ||
'127.0.0.1';
const clientPort = req.socket?.remotePort?.toString() || '0';
console.log('Verificação pública solicitada:', {
hash,
realClientIP,
clientPort,
headers: {
'x-forwarded-for': req.headers['x-forwarded-for'],
'user-agent': req.headers['user-agent']
}
});
const provaService = new ProvaService();
const result = await provaService.verifyFile(hash);
// Adicionar informações de verificação ao resultado
return res.status(200).json({
...result,
verificacao: {
timestamp: new Date().toISOString(),
ip: realClientIP,
porta: clientPort
}
});
} catch (error) {
console.error('Erro ao verificar arquivo:', error);
return res.status(500).json({
verified: false,
message: `Erro ao verificar: ${error.message}`
});
}
});