在哪里存储用户的敏感数据?

时间:2019-11-03 20:20:04

标签: reactjs redux local-storage persistence react-cookie

我正在使用React,Redux和React-Cookie开发一个Web。在此网络中,我有一个登录系统,在该系统中,我向后端API发送POST请求,该请求将向我发回我需要用于组件的用户数据(包括cookie的令牌),并且我需要此数据保持持久性。当前,我将用户数据存储在我的存储中,并且isAuthenticated的布尔值存储在客户端的本地存储中(我不知道此过程的安全性如何)。我应该在哪里存储这些数据?也许在饼干里?另外,如果您对我存储经过身份验证的布尔值的方式有一些建议,也将非常好。

1 个答案:

答案 0 :(得分:1)

通常的做法是将user对象存储在本地存储中,并为令牌提供另一个密钥(或者您可以将令牌嵌入用户对象内)。

不需要authenticated布尔值,您应该检查用户是否在本地存储中,如果存在,则对用户进行身份验证。

在您的logout函数中,请确保从本地存储中删除用户密钥,以便上述检查将返回false。

function isAuthenticated() {
 return !!localstorage.getItem('user');
}

function login(credentials) {
  fetch(....)
  .then(res => res.json())
  .then(({user, token}) => {
    localstorage.setItem('user', {...user, token});
   })
}

function logout() {
  localstorage.removeItem('user');
}