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 12:45:34 -03:00
1 parent 8dfe0d6f94
commit 949694fcfc
6 files changed
+307 -30

No files matched your search

+46 -4
View File
@@ -175,15 +175,57 @@ router.get('/:id/status', async (req, res) => {
}
});
// Verificar documento
// Rota de verificação
router.get('/verificar/:hash', async (req, res) => {
try {
const { hash } = req.params;
// Coletar informações de conexão do cliente
const clientInfo = {
ipAddress: req.ip,
remoteAddress: req.socket?.remoteAddress,
headers: req.headers,
userAgent: req.headers['user-agent'],
verificadoEm: new Date().toISOString()
};
// Instanciar o serviço e verificar a prova
const provaService = new ProvaService();
const result = await provaService.verifyFile(hash);
res.json(result);
// Registrar a verificação no log de acessos (opcional)
try {
await prisma.verificacaoProva.create({
data: {
provaId: result.prova?.id,
hash,
ipAddress: req.headers['x-forwarded-for'] || req.ip || '127.0.0.1',
userAgent: req.headers['user-agent'] || 'Desconhecido',
timestamp: new Date(),
success: result.verified,
metadata: clientInfo
}
});
console.log('Verificação registrada com sucesso');
} catch (logError) {
console.error('Erro ao registrar verificação:', logError);
// Não interromper o fluxo por erro de log
}
// Retornar os dados da verificação
return res.status(200).json({
...result,
verificacao: {
timestamp: new Date(),
ip: req.headers['x-forwarded-for'] || req.ip || '127.0.0.1'
}
});
} 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}`
});
}
});