比较两个数组的用户名和密码

时间:2020-06-25 20:49:39

标签: javascript html arrays

我在JavaScript中有两个数组。一种包含用户名,另一种包含密码。我想创建一个循环,以检查用户输入的用户名在“ approvedUsernames”数组中的哪个位置,并在“ approvedPasswords”数组中获取相同的“ i”值并选择该值被发现。然后比较两者。如果匹配,则成功登录,否则失败

请在下面查看现有的数组和我已经编写的代码

任何帮助表示赞赏 我希望这很清楚,我在措辞上很麻烦:)

詹姆斯

编辑:我知道这是一种存储密码的非常不安全的方法,它只是暂时的测试登录算法。最终版本将肯定使用PHP + SQL数据库

数组:

approvedLogins = ['JamesLiverton', 'SamW']                 approvedPasswords = ['password', 'coding']

代码:

function login(){
var username = document.getElementById('usernameField').value
var password = document.getElementById('passwordField').value

for (i = 0; i < approvedLogins.length; i++) {
    if (username == approvedLogins[i].username && password == approvedPasswords[i].password) {
        alert('Login Sucessful')
        return
    }
    else {
        alert('Login Unsucessful')
        return
    }
}

}

3 个答案:

答案 0 :(得分:0)

检查此示例:

var approvedLogins = ['JamesLiverton', 'SamW'];
var approvedPasswords = ['password', 'coding'];

function login(username) {
    if (approvedLogins.includes(username)) {
        var matchedPassword = approvedPasswords[approvedLogins.indexOf(username)];
        console.log(matchedPassword);
    } else {
        console.log("Username not found in array!");
    }
}

它检查是否在数组中找到login()参数中提供的用户名。如果它在数组中,则它将获取相对于该数组中用户名位置的密码。例如,“ SamW”应为“编码”。

我希望这会有所帮助。

答案 1 :(得分:0)

首先,如果您打算进行此操作,我会觉得您对安全性了解不多。我建议您研究一下第三方身份验证(如果您问这种问题,则可能超出了您的技能水平,但仍然可以)。至少要考虑使用盐加密用户密码(查找盐是什么)。

话虽如此,您可以做到这一点。

function login() {
  const username = document.getElementById('usernameField').value
  const password = document.getElementById('passwordField').value

  alert(isValidLogin(username, password) ? 'Login successful' : 'Login failed')
}

// create a separate function for checking validity, so it's easier
// to refactor/reimplement later, if need be.
function isValidLogin(username, password) {
  const usernameArray = ['name1', 'name2', ... 'nameN']
  const passwordArray = ['pw1', 'pw2', ... 'pwN']

  const usernameIndex = usernameArray.findIndex(item => item === username)
  
  return usernameIndex !== -1 && passwordArray[usernameIndex] === password
}

答案 2 :(得分:0)

let approvedLogins = ['JamesLiverton', 'SamW']               
let approvedPasswords = ['password', 'coding']

function login(){
  var username = document.getElementById('usernameField').value
  var password = document.getElementById('passwordField').value

  let index = approvedLogins.indexOf(username)

  if (password === approvedPasswords[index]) {
    alert('Login Sucessful')
  } else {
    alert('Login Unsucessful')
  }
}
<input type="text" id="usernameField" placeholder="username" /><input type="text" id="passwordField" placeholder="password" />

<button onclick="login()">login</button>