da4d83e7cc
El decrypt() de la clave SMTP guardada estaba fuera del try/catch tanto en testSmtpConfig
(el boton "Probar") como en getSmtpConfigInternal (usado por el mailer real para forgot-
password, registro, invitaciones). Si ENCRYPTION_KEY no coincide con la que se uso para
guardar -- el caso documentado de exilaser, que recibio un dump de LinkedCorp con su propia
clave -- el fallo de decrypt() se propagaba sin control: "Error interno" generico en el boton
de prueba, y un crash silencioso en el envio real en vez de la degradacion a modo dev que el
propio comentario del codigo promete. Ambos casos ahora devuelven un mensaje claro / degradan
correctamente.
De paso se agrega `app.set('trust proxy', 1)`: la app corre detras de Nginx Proxy Manager pero
Express no lo sabia, asi que express-rate-limit usaba la IP del proxy para todos los clientes
(un cupo compartido en vez de uno por usuario) y tiraba un aviso de validacion en cada request.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
27 lines
666 B
JSON
27 lines
666 B
JSON
{
|
|
"name": "project-linkedcorp-backend",
|
|
"version": "2.10.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "src/server.js",
|
|
"scripts": {
|
|
"dev": "node --watch src/server.js",
|
|
"start": "node src/server.js",
|
|
"migrate": "node src/scripts/migrate-db.js",
|
|
"seed": "node src/scripts/seed-db.js",
|
|
"create-admin": "node src/scripts/create-admin.js"
|
|
},
|
|
"dependencies": {
|
|
"bcryptjs": "^2.4.3",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.4.5",
|
|
"express": "^4.19.2",
|
|
"express-rate-limit": "^7.4.0",
|
|
"helmet": "^7.1.0",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"multer": "^2.3.0",
|
|
"mysql2": "^3.11.0",
|
|
"nodemailer": "^10.0.0"
|
|
}
|
|
}
|