检查HTML5存储中的登录凭据

时间:2018-04-19 22:24:15

标签: javascript json function login

我正在建立一个quizz应用程序,它要求我:添加用户身份验证:允许用户登录,并将他们的登录凭据保存到本地存储(HTML5浏览器存储)。我要添加的是检查用户名和&&密码(一起,因为你可以使用相同的用户名而不是相同的密码,反之亦然),所以我可以提示“欢迎回来(用户名)”。 我花了3天试图找出哪些逻辑工作,尝试了所有的东西,但每当我遇到逻辑问题时,事情就不应该如此,这就是代码:

  var usersinfo = {
       users : []
  }

 localStorage.setItem("users", JSON.stringify(usersinfo.users))

 function registerInfo(){
  var name = document.forms[0].username.value;
  var pw = document.forms[0].pw.value;

  if (name === "" || pw === "") {
   alert ('please complete all the forms')
    } else {
    var adding = JSON.parse(localStorage.getItem("users"));
    // logic that goes here : i tried everything , looping...etc 
   }

return false;
}

请注意,该函数附加到一个按钮,一切都可以在HTML上正常工作,问题在于登录逻辑。

1 个答案:

答案 0 :(得分:0)

未经测试,但尝试这样的事情:

const users = JSON.parse(localStorage.getItem("users"));
if (users.some((user) => {
  return user.name === document.forms[0].username.value;
})) {
  alert('Welcome back!');
}

基本上,我们在数组上使用some进行循环,并确定是否有任何元素与表单中的元素具有相同的名称。如果他们这样做,我们会立即停止循环并返回true。如果没有,我们会返回false

另请参阅:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

并且,确实采取@ AnilRedshift的建议,不要将用户名/密码存储在localstorage中......