javascript - 使用本地存储和 React 保持用户在刷新时登录

标签 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: ""
    }

谢谢!

最佳答案

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

localStorage.getItem('loggedIn')

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

关于javascript - 使用本地存储和 React 保持用户在刷新时登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48845057/

相关文章:

javascript - 谷歌电子表格如何在不改变焦点的情况下检测单元格点击

javascript - React Material UI 中的网格布局出现问题

javascript - 无法使用 Chrome 开发者工具查看 localStorage key

javascript - 函数将如何分离扩展运算符和剩余运算符

javascript - Parsley.js 问题,将类添加到表单字段的父级

javascript - react-datepicker 年份范围

javascript - 在 Javascript 中使用 isAbsolute() 函数无法按预期工作

javascript - 如何对本地存储中的嵌套键进行数字排序

javascript - 判断是否支持 Web Storage

javascript - 在对象存在之前创建方法链