为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开心每一天1111 2022-12-18 16:01:43
我正在使用 MERN 堆栈和 Redux。当用户登录时,我将一个 jwtToken 保存到本地存储。我有一个用于提交信息的表单,该表单上的属性之一是作者,我想自动填充登录用户的 ID。要访问您需要登录此表格,以便信息始终存在。任何人都知道我该怎么做?这是我刚才拥有的,但它不起作用。除了保存在本地存储中,它还可以通过全局状态访问,但我真的不知道如何访问这个或者哪个选项更好用。class AddSubject extends Component {  constructor() {    super();    const user = localStorage.getItem("jwtToken");    this.state = {      title: "",      summary: "",      description: "",      author: user._id,      errors: {},    };  }
查看完整描述

4 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您需要解码令牌并获取 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: {},

    };

  }


查看完整回答
反对 回复 2022-12-18
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

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



查看完整回答
反对 回复 2022-12-18
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

在您的 componentDidMount 生命周期中:

window.localStorage.getItem(token)


查看完整回答
反对 回复 2022-12-18
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我不确定,但它可以帮助你:


class AddSubject extends Component {

  constructor() {

    super();

    this.state = {

      title: "",

      summary: "",

      description: "",

      author: localStorage.getItem("jwtToken")._id || '',

      errors: {},

    };

  }


查看完整回答
反对 回复 2022-12-18
  • 4 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信