如何使用JavaScript LocalStorage进行安全登录?
我正在建立一个网站,需要用户身份验证。我用React来做这个。如何使登录系统安全? 我所有的东西都在本地存储中。我担心,有了这个解决方案,任何人都可以在浏览器中创建自己的本地存储,并使用它作为真实用户登录和身份验证。 以下是我的登录功能:如何使用JavaScript LocalStorage进行安全登录?,javascript,html,reactjs,local-storage,Javascript,Html,Reactjs,Local Storage,我正在建立一个网站,需要用户身份验证。我用React来做这个。如何使登录系统安全? 我所有的东西都在本地存储中。我担心,有了这个解决方案,任何人都可以在浏览器中创建自己的本地存储,并使用它作为真实用户登录和身份验证。 以下是我的登录功能: login(){ if (typeof(Storage) !== "undefined") { localStorage.setItem("userId",this.state.user._id); localStorage.setItem("us
login(){
if (typeof(Storage) !== "undefined") {
localStorage.setItem("userId",this.state.user._id);
localStorage.setItem("username", this.state.user.username);
localStorage.setItem("email", this.state.user.email);
localStorage.setItem("date", this.state.user.date);
this.setState({isLoggedIn: true});
localStorage.setItem("isLoggedIn", this.state.isLoggedIn);
if(localStorage.getItem("isLoggedIn")){
console.log("Congratulations "+localStorage.getItem("username")+", you are now logged in.");
setTimeout(function () {
window.location.pathname="/user";
}.bind(this),500);
}
}
else {
console.log("No support for local storage");
}}
我应该做哪些更改以使其更安全?或者我应该转移到另一个解决方案,而完全不使用本地存储?查看会话或令牌的可能副本您的服务器应该生成JSON Web令牌(或其他类型的“签名令牌”),并在用户登录时将其发送到客户端。将令牌存储在本地存储器中。然后,对于服务器的每个请求,客户机都应该包含令牌。服务器将验证令牌,因此它将检测用户何时修改或创建自己的令牌(这些令牌将无法通过验证)。这与使用cookies的策略几乎相同。