将用户对象存储在localstroage中是否合适?

时间:2018-08-08 10:21:32

标签: angular jwt frontend

我目前正在使用JWT rails和Angular。用用户ID编码令牌后。成功注册后,我将发回用户Object和用于后续每个请求的令牌。解密令牌只能给我用户ID。关于当前用户,我是否应该继续将用户对象存储在本地存储中(恐怕有人会劫持其他人的数据)?或者也许我应该继续使用解码后的userId进行请求以获取当前用户(恐怕这对于服务器来说太过分了。)

1 个答案:

答案 0 :(得分:1)

将用户详细信息保存到本地存储不安全。因此,您可以使用crypto-js库对它进行编码,然后再保存到本地存储中,对它进行解码,然后再显示到DOM中。

encrypt(data) {

    try {
      return CryptoJS.AES.encrypt(JSON.stringify(data), this.encryptSecretKey).toString();
    } catch (e) {
      console.log(e);
    }
  }

  decrypt(data) {

    // avoid UTF-8 Decode Error
    try {
      const bytes = CryptoJS.AES.decrypt(data, this.encryptSecretKey);
      if (bytes.toString()) {
        return JSON.parse(bytes.toString(CryptoJS.enc.Utf8));
      }
      return data;
    } catch (e) {
      console.log(e);
    }
  }