Estoy creando un sistema de inicio de sesión simple para un proyecto escolar y necesito verificar si los nombres de usuario y las contraseñas están en mi lista, pero parece que no puedo resolverlo.
var logs = [ { username: "admin", senha: "admin" }, { username: "client", senha: "client" } ] function login_func() { let user = document.getElementById('email_val') let passwd = document.getElementById('passwd') if(logs.includes(user.value)){ alert('amogus') } }Si alguien pudiera ayudarme estaría muy agradecido
la mejor práctica para este será el prototipo de some matriz:
function isVerify(username, password){ return logs.some(log => log.password === password && log.username === username) }Por supuesto, en el mundo real, cifrará las contraseñas y las almacenará en bases de datos.
En caso de que desee devolver el usuario que inició sesión, use find en su lugar:
function login(username, password){ return logs.find(log => log.password === password && log.username === username) }Esto devolverá nulo en caso de resultado no coincidente.
Si desea el equivalente de includes pero necesita verificar una propiedad de cada objeto, use Array.some que toma una función de prueba.
if (logs.some(obj => obj.username === user.value && obj.senha === passwd.value)) {Por supuesto, tenga en cuenta que este tipo de 'autenticación' solo servirá para fines de demostración y nunca será útil para un inicio de sesión real.
Puede usar el método find () para encontrar que su usuario existe con sus entradas.
const haveUser = (username, password) => !!logs.find(log => log.username == username && log.senha === password)Importante : cuando queremos crear un sistema de autenticación, no debemos crearlo en el lado de la interfaz. Es completamente incorrecto y arriesgado porque otros desarrolladores abren Dev Tools y pueden encontrar sus credenciales.