我在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
}
}
}
答案 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>