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