diff --git a/server.js b/server.js index 6039bb9..e0d2610 100644 --- a/server.js +++ b/server.js @@ -383,43 +383,24 @@ async function requirePlan(req, res, next, feature) { app.post("/auth/login", async (req, res) => { try { - // 🚨 MEJORA: Aceptamos identifier, email o phone para que no falle nunca con el frontend - const identifier = req.body.identifier || req.body.email || req.body.phone; - const password = req.body.password; - - if (!identifier || !password) return res.status(400).json({ ok: false, error: "Faltan datos" }); - - const identClean = String(identifier).replace(/\s+/g, '').trim(); - - // Buscamos al usuario por email o por teléfono (con o sin +34) - const q = await pool.query( - "SELECT * FROM users WHERE email = $1 OR phone LIKE $2 LIMIT 1", - [identClean, `%${identClean.replace('+34', '')}%`] - ); + const { email, password } = req.body; + if (!email || !password) return res.status(400).json({ ok: false, error: "Faltan credenciales" }); + // Buscamos al usuario por email o por teléfono + const q = await pool.query("SELECT * FROM users WHERE email = $1 OR phone = $1", [email]); if (q.rowCount === 0) return res.status(401).json({ ok: false, error: "Usuario no encontrado" }); const user = q.rows[0]; - - if (user.status !== 'active') return res.status(403).json({ ok: false, error: "Tu cuenta está desactivada" }); + if (user.status !== 'active') return res.status(401).json({ ok: false, error: "Cuenta desactivada. Contacta con el administrador." }); const valid = await bcrypt.compare(password, user.password_hash); if (!valid) return res.status(401).json({ ok: false, error: "Contraseña incorrecta" }); const token = signToken(user); - res.json({ - ok: true, - token, - user: { - id: user.id, - name: user.full_name, - role: user.role, - accountId: user.owner_id || user.id - } - }); + res.json({ ok: true, token, role: user.role, name: user.full_name }); } catch (e) { - console.error("Error en login:", e); - res.status(500).json({ ok: false, error: "Error interno del servidor" }); + console.error("Login error:", e); + res.status(500).json({ ok: false, error: "Error de servidor al iniciar sesión" }); } });