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

136
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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