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

144
Visualizações
Hacer una página de inicio de sesión usando JSON como verificación

Primera pregunta sobre Stackoverflow, aún nuevo en programación.

Estoy tratando de hacer una página de inicio de sesión bancaria simple con un archivo JSON que tiene todos los nombres de usuario y contraseñas.

Estoy haciendo una declaración if que leerá el archivo JSON para encontrar el nombre de usuario y la contraseña como clave y valor para que coincida con la entrada del usuario en el sitio web. Si coincide con la entrada, iniciará sesión en el sitio web; de lo contrario, dirá "Contraseña no válida" o "No es un nombre de usuario registrado".

Lo que sucede es que me sigue dando "No es un correo electrónico registrado" cuando escribí el nombre de usuario y la contraseña correctos, pero quiero iniciar sesión con el nombre de usuario y la contraseña correctos.

Estoy usando node.js y express (¿no estoy seguro de si es importante?). Lo siento si mi código o explicación no está claro, todavía es muy nuevo.

 ... var accounts = JSON.parse(fs.readFileSync('./accounts.json')); app.post('/', function (req, res) { username1 = req.body.userinput; //username is their email password1 = req.body.passinput; if (username1 == accounts.email && password1 == accounts.password) { console.log("Correct login"); res.render('login', { layout: false}); } else if (username1 == accounts.email && password1 != accounts.password) { var incorrectp = ("Invalid Password"); res.render('login', { layout: false, wrongp: incorrectp }); } else if (username1 != accounts.email) { var incorrectu = ("Not a registered username"); res.render('login', { layout: false, wrongu: incorrectu }); } });

cuentas.json

 [ { "id": "100001", "email":"helloworld@gmail.com", "password":"helloworld", "accountType":"Chequing", "accountBalance":0 }, { "id": "100002", "email":"john@beatles.uk", "password":"lennon", "accountType":"Savings", "accountBalance":0 } ] ...
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Este enfoque no escalará muy bien. Puedes hacer esto usando forEach:

 let accountName; accounts.forEach(obj => { if (obj.email === username1 && obj.password === password1) { accountName = obj.email })

o usando buscar:

 const accountName = accounts.find(obj => (obj.email === username1 && obj.password === password1))

Además de la pregunta real, quiero enfatizar que nunca debe almacenar la contraseña en forma clara o encriptada. Se debe utilizar un mecanismo de hashing de contraseñas, los posibles candidatos incluyen: Argon2, bcrypt o PBKDF2. Asegúrese de utilizar los parámetros adecuados para estos mecanismos.

about 4 years ago · Juan Pablo Isaza Relatório

0

Le gustaría iterar a través de accounts.json.

Prueba algo como esto.

 let acc; for (const account of accounts) { if (username1 == account.email) { acc = account; } } if (acc == null) { var incorrectu = ("Not a registered username"); res.render('login', { layout: false, wrongu: incorrectu }); return; } // Do your account checking logic here
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