Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

278
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda