Как проверить, содержится ли astring внутри переменной в javascript для входа в систему - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть этот код для страницы входа:

console.log("[js/login.js] started");

// function
function validate() {
  var username = document.getElementById("username").value;
  var password = document.getElementById("password").value;
  console.log(
    "[js/login.js] request to get info sent [ " +
      username +
      ":" +
      password +
      " ]"
  );
  if (username == "dev" && password == "dev") {
    // here i have only this credentials to log on... I would like to add like more account...
    alert("Welcome Back!");
    console.log(
      "[js/login.js] user " +
        username +
        " logged in with password " +
        password +
        " ."
    );
    window.close();
    window.open("success.html");
    console.log("[js/login.js] request to change page sent");
    return false;
  } else {
    // wrong credentials
    document.getElementById("username").disabled = true;
    document.getElementById("password").disabled = true;
    document.getElementById("loginButton").disabled = true;
    alert("Wrong Password, Blocked.");
    console.log(
      "[js/login.js] HTML elements blocked by too many wrong attemps"
    );
    return false;
  }
}
console.log("[js/login.js] function validate started");

, но я хотел бы сделать переменную, например:

var userlist = "username:pass, username1:pass1, ect..."

, и тогда я не знаю, как проверьте, содержатся ли учетные данные пользователя в этой переменной userlist

, потому что я новичок в javascript: (

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020
userlist.split(",").forEach((s)=>{
var uname=s.split(":")[0];
var pass=s.split(":")[1];
if(uname==USERNAME && pass==PASSWORD)
return true;
});
0 голосов
/ 30 апреля 2020

, если userList является таким объектом: {username0: pass0, username1: pass1}

, вы можете просто сделать это:

const checkUser = (username,password)=> {
 if(userList[username]) return userList[username]===password
 return false
}
...