在哪里存储用户的敏感数据?
Where to store user's sensitive data?
我正在使用 React、Redux 和 React-Cookie 开发 Web。在这个网站中,我有一个登录系统,我在其中向我的后端 API 发送一个 POST 请求,该请求将向我发送回我的组件所需的用户数据(包括它的 cookie 令牌),我需要这些数据是持久的。目前我将用户数据存储在我的商店中,并将 isAuthenticated 的布尔值存储在客户端的本地存储中(我不知道这个过程有多不安全)。我应该在哪里存储这些数据?也许在饼干里?另外,如果您对我存储经过身份验证的布尔值的方式有一些建议,那也很好。
通常的做法是将 user
对象存储在本地存储中,并为令牌设置另一个密钥(或者您可以将令牌嵌入到用户对象中)。
不需要 authenticated
布尔值,您应该检查用户是否存在于本地存储中,如果存在,则您的用户已通过身份验证。
在您的 logout
函数中确保从您的本地存储中删除用户密钥,这样上述检查将 return 错误。
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');
}
我正在使用 React、Redux 和 React-Cookie 开发 Web。在这个网站中,我有一个登录系统,我在其中向我的后端 API 发送一个 POST 请求,该请求将向我发送回我的组件所需的用户数据(包括它的 cookie 令牌),我需要这些数据是持久的。目前我将用户数据存储在我的商店中,并将 isAuthenticated 的布尔值存储在客户端的本地存储中(我不知道这个过程有多不安全)。我应该在哪里存储这些数据?也许在饼干里?另外,如果您对我存储经过身份验证的布尔值的方式有一些建议,那也很好。
通常的做法是将 user
对象存储在本地存储中,并为令牌设置另一个密钥(或者您可以将令牌嵌入到用户对象中)。
不需要 authenticated
布尔值,您应该检查用户是否存在于本地存储中,如果存在,则您的用户已通过身份验证。
在您的 logout
函数中确保从您的本地存储中删除用户密钥,这样上述检查将 return 错误。
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');
}