使用React使用本地存储保持用户登录刷新

时间:2018-02-17 19:22:43

标签: javascript reactjs local-storage

我尝试使用本地存储,以便在刷新时,用户仍然登录,而不是每次都注销。我已设法使用此代码将数据保存到本地存储空间(我使用的是Firebase,因此我会留下很多内容):

 saveToLocal(){
    const local = this.state.loggedIn;
    localStorage.setItem("loggedIn", JSON.stringify(local));
}

loginUser(e){
    e.preventDefault();      
    this.setState({
        loggedIn: "true"
    }, 
    this.saveToLocal);

我现在如何访问本地存储中的数据并让它立即设置状态,以便用户在刷新时保持登录状态?这是我的州:

constructor(){
    super();

    this.state = {
        loggedIn: ""
    }

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以这样做。在根组件跟踪中,您的用户登录/退出状态。如果您已经有localStorage项目,那么您只需阅读localStorage的componentDidMount值并根据该值设置状态。

localStorage.getItem('loggedIn')

但也许更好的解决方案是使用cookie,具体取决于您希望用户登录的程度。使用Cookie,您可以为整个逻辑添加时间维度。