我如何访问存储在本地存储中的令牌中的数据?

我正在使用 MERN 堆栈和 Redux。当用户登录时,我将一个 jwtToken 保存到本地存储。我有一个用于提交信息的表单,该表单上的属性之一是作者,我想自动填充登录用户的 ID。要访问您需要登录此表格,以便信息始终存在。任何人都知道我该怎么做?这是我刚才拥有的,但它不起作用。除了保存在本地存储中,它还可以通过全局状态访问,但我真的不知道如何访问这个或者哪个选项更好用。

class AddSubject extends Component {

  constructor() {

    super();

    const user = localStorage.getItem("jwtToken");

    this.state = {

      title: "",

      summary: "",

      description: "",

      author: user._id,

      errors: {},

    };

  }


开心每一天1111
浏览 117回答 4
4回答

哈士奇WWW

您需要解码令牌并获取 user_id。试试这个:const jwt_decode = require('jwt-decode');class AddSubject extends Component {  constructor() {    super();    const token = localStorage.getItem("jwtToken");    const data = jwt_decode(token);    this.state = {      title: "",      summary: "",      description: "",      author: data.user._id,      errors: {},    };  }

慕运维8079593

由于您使用 redux 进行数据管理,因此最好在应用程序初始化期间将解码后的令牌详细信息从 localStorage 存储到 redux store。这样,用户信息在全球范围内可用,并且您不需要在组件安装时访问本地存储,并且其他需要显示用户信息的组件也可以从全球商店共享它。

海绵宝宝撒

在您的 componentDidMount 生命周期中:window.localStorage.getItem(token)

梦里花落0921

我不确定,但它可以帮助你:class AddSubject extends Component {  constructor() {    super();    this.state = {      title: "",      summary: "",      description: "",      author: localStorage.getItem("jwtToken")._id || '',      errors: {},    };  }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript