使用Javascript将数据存储到本地存储

时间:2019-02-28 07:09:07

标签: javascript local-storage

如何将原始密码存储到本地存储中?

我有两个输入用户名和密码:

<input id="myInput" type="text" name="myInput" placeholder="Input">
<input id="myPW" type="password" name="myPassword" placeholder="Password">

我要在JavaScript中进行的操作是存储用户名,转换为Base64的密码以及密码的原始数据。但是它仅存储用户名和Base64密码。原始密码不会存储。我该如何解决?

2 个答案:

答案 0 :(得分:2)

因为将inpw.value设置为空字符串,然后再使用它来推送原始密码。

  userArray.push(inp.value);
  localStorage.setItem('user', JSON.stringify(userArray));
  inp.value = "";

  passArray.push(window.btoa(inpw.value));
  localStorage.setItem('pass', JSON.stringify(passArray));
  inpw.value = ""; // This makes next inpw.value equals ""

  origPassArray.push(inpw.value); // So this will push an empty string to the array
  localStorage.setItem('orig', JSON.stringify(origPassArray));
  inpw.value = "";

答案 1 :(得分:1)

for loops行之后,您的输入是空的。此外,请勿重复自己的操作。我做了一些重构。您应该编写函数来获取本地存储区的凭据,例如

inpw.value = "";

还要编写一些函数来将凭据设置为localstore之类的

const storedValue = ['user', 'pass', 'origin']

const credential = getCredentialFromStore(storedValue)

const getCredentialFromStore = (storedValue) => {
  const result = []
  storedValue.forEach(item => {
    result[item] = localStorage.getItem(item) ? JSON.parse(localStorage.getItem(item)) : [];
  })
  return result
}

使用:

const addToCredential = (credential, key, value) => {
  credential[key].push(value);
  localStorage.setItem(key, JSON.stringify(credential[key]));
  return credential
}