Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较两个用户名数组+;密码_Javascript_Html_Arrays - Fatal编程技术网

Javascript 比较两个用户名数组+;密码

Javascript 比较两个用户名数组+;密码,javascript,html,arrays,Javascript,Html,Arrays,我有两个JavaScript数组。一个包含用户名,一个包含密码。我想创建一个循环,检查用户名在用户输入的“approvedUsernames”数组中的位置(I),并在“approvedPasswords”数组中获取相同的“I”值,然后选择找到的值。然后比较两者。如果匹配,则登录成功;如果不匹配,则登录不成功 请参阅现有的数组和我已经在下面编写的代码 非常感谢您的帮助 我希望这足够清楚,因为我在措辞上有困难:) 詹姆斯 编辑:我知道这是一种非常不安全的密码存储方式,只是暂时测试登录算法。最终版本肯

我有两个JavaScript数组。一个包含用户名,一个包含密码。我想创建一个循环,检查用户名在用户输入的“approvedUsernames”数组中的位置(I),并在“approvedPasswords”数组中获取相同的“I”值,然后选择找到的值。然后比较两者。如果匹配,则登录成功;如果不匹配,则登录不成功

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

非常感谢您的帮助 我希望这足够清楚,因为我在措辞上有困难:)

詹姆斯

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

阵列:

approvedLogins = ['JamesLiverton', 'SamW']                 approvedPasswords = ['password', 'coding']
代码:

函数登录(){
var username=document.getElementById('usernameField')。值
var password=document.getElementById('passwordField')。值
对于(i=0;i
}

检查此示例:

var approvedLogins=['JamesLiverton','SamW'];
var approvedPasswords=[“密码”,“编码”];
函数登录(用户名){
if(已批准的登录名。包括(用户名)){
var matchedPassword=approvedPasswords[approvedLogins.indexOf(username)];
console.log(匹配密码);
}否则{
log(“在数组中找不到用户名!”);
}
}
它检查是否在数组中找到
login()
参数中提供的用户名。如果它在数组中,那么它将获取相对于该数组中用户名位置的密码。例如,“SamW”将是“编码”


我希望这能有所帮助。

首先,如果您打算这样做,我感觉您对安全性了解不多。我建议您研究第三方身份验证(如果您提出此类问题,可能超出您的技能水平,但仍然如此)。至少,考虑用盐加密你的用户密码(查找盐是什么)。 话虽如此,你可以做到这一点

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
}
let approvedLogins=['JamesLiverton','SamW']
让approvedPasswords=['password','coding']
函数登录(){
var username=document.getElementById('usernameField')。值
var password=document.getElementById('passwordField')。值
让index=approvedLogins.indexOf(用户名)
如果(密码===approvedPasswords[索引]){
警报('登录成功')
}否则{
警报('登录不成功')
}
}


登录
我会尝试找到答案,但出于兴趣。。。为什么要用JavaScript存储用户名/密码?这是非常不安全的,因为任何人都可以在几秒钟内查看源代码并检索所有源代码;或者使用break停止循环,然后使用i的值做一些事情是的,一个真正的登录系统会在数据库中存储用户名和散列密码。web应用程序将调用API并向其传递用户名/密码,然后您将在数据库中查找它。如果匹配,您将生成某种令牌或cookie,基本上创建一个登录会话。@Nanoo我100%同意,但这只是一个更大项目的原型。这是一个非常临时的凭证存储。我测试的更多是登录/注册系统的算法,而不是长期存储系统。这样我就可以快速访问算法中使用的数据。在最后一个程序中,我肯定会使用SQL数据库:)
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
}