Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

283
Vistas
Validación de nombre de usuario O número de teléfono - comparar

Actualmente solo estoy haciendo un sistema de inicio de sesión muy simple y básico con una dirección de correo electrónico o un número de teléfono. Sin contraseña.

Nada importante que ocultar, solo un centro de información.

Lo que quiero lograr:

  • Verifique si el correo electrónico ingresado por el usuario existe dentro de la matriz de usuarios.
  • Verifique si el teléfono ingresado por los usuarios existe dentro de la matriz de usuarios. Compruebe si tanto el correo electrónico como el teléfono coinciden con el mismo usuario.
  • Verifique si el correo electrónico es incorrecto y el teléfono se cae (o viceversa); aún encuentra al usuario correcto.

Qué está pasando actualmente:

  • Encuentra al usuario correcto si se ingresa el correo electrónico.
  • Si el correo electrónico se ingresa incorrectamente y el número de teléfono es correcto, aparece un error indefinido.
  • Si ambos son incorrectos, aparece un error del servidor que indica que el correo electrónico no está definido.

El código:

Objeto de los usuarios

 const users = [ { email: "jon@doe.com", phone: "0798888888", name: "John Doe", access: ["home", "blah", "etc"] }, { email: "fakedoe@john.com", phone: "079000000", name: "Fake Doe", access: ["home", "etc"] } ];

Código principal:

 app.post("/in", async (req, res) => { let email = req.body.email, phone = req.body.phone; let conditions = !!email ? { email } : { phone }; let data = users.find((x) => x.email === conditions.email || x.phone === conditions.phone); let pass = data.email || data.phone !== undefined; console.log(pass); if (pass) { if (conditions.email && conditions.email === data.email) { pass = true; } if (conditions.phone && conditions.phone === data.phone) { pass = true; } } if (pass) { res.cookie("JWT", jwtSign(req.body.email, data.name, data.access)); res.status(200); res.send("OK"); } else { res.status(200); res.send("Invalid user/password"); } });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

sistema de inicio de sesión con una dirección de correo electrónico o un número de teléfono

Tenía que encontrar una manera de jugar con el código. ¡Aquí hay una versión funcional!

 const users = [{ email: "fakedoe@john.com", phone: "079000000", name: "Fake Doe", access: ["home", "etc"] } ]; function checkUserExists(email, phone) { return !!users.find((x) => x.email === email || x.phone === phone); } console.log(checkUserExists('fakedoe@john.com', '0490')); //email console.log(checkUserExists('fakedoe@joh.com', '079000000')); //phone console.log(checkUserExists('fakedoe@john.com', '079000000')); //both console.log(checkUserExists('fakedoe@joh.com', '0490')); //none

Así que reemplaza esto:

 app.post("/in", async (req, res) => { let email = req.body.email, phone = req.body.phone; let conditions = !!email ? { email } : { phone }; let data = users.find((x) => x.email === conditions.email || x.phone === conditions.phone); let pass = data.email || data.phone !== undefined; console.log(pass); if (pass) { if (conditions.email && conditions.email === data.email) { pass = true; } if (conditions.phone && conditions.phone === data.phone) { pass = true; } } if (pass) { res.cookie("JWT", jwtSign(req.body.email, data.name, data.access)); res.status(200); res.send("OK"); } else { res.status(200); res.send("Invalid user/password"); } });

con este:

 function userExists(email, phone) { return !!users.find((x) => x.email === email || x.phone === phone); } app.post("/in", async (req, res) => { if (userExists(req.body.email, req.body.phone)) { res.cookie("JWT", jwtSign(req.body.email, data.name, data.access)); res.status(200); res.send("OK"); } else { res.status(200); res.send("Invalid user/password"); } });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda