【问题标题】:How to save jwt token from session storage into variable? [duplicate]如何将 jwt 令牌从会话存储保存到变量中? [复制]
【发布时间】:2018-05-20 03:03:16
【问题描述】:

我进行了 jwt 授权并将该令牌存储到会话存储中,但是当我尝试将该令牌放入字符串并记录它时,我得到了 null,这就是函数

login(user : User): void
  {
    this.header= new Headers({"content-Type": "application/json"});
    this.osobaService.create(user,this.tokenUrl,this.header).then(p=> {sessionStorage.setItem("Token",p._body.slice(1,-1))});
    this.tokenString = sessionStorage.getItem("Token");
    console.log(this.tokenString);
  }

这应该是简单的 getItem 方法,但我得到了 null 。

【问题讨论】:

  • p是什么类型的Object?尝试在此处记录此值:.then(p=> {console.log("Token:",p._body.slice(1,-1));sessionStorage.setItem("Token",p._body.slice( 1,-1))}) 也许这会提示您在哪里搜索错误。
  • 是您的osobaService 回调还是有任何解析功能?

标签: angular jwt session-storage


【解决方案1】:

“this.osobaService.create”是一个异步函数。您正在尝试记录一个值,然后再写入它。如果您像这样更改代码,这应该会记录一个正确的值。

login(user : User): void
  {
    this.header= new Headers({"content-Type": "application/json"});
    this.osobaService.create(user,this.tokenUrl,this.header)
        .then(p=> {
             sessionStorage.setItem("Token",p._body.slice(1,-1))
             this.tokenString = sessionStorage.getItem("Token");
             console.log(this.tokenString);
        });
  }

【讨论】:

  • 感谢您指出它是异步的,我现在明白我需要 w8 才能响应。干杯
猜你喜欢
  • 2018-05-06
  • 2018-11-12
  • 2021-10-16
  • 2018-11-14
  • 2019-02-01
  • 1970-01-01
  • 2013-08-06
  • 2015-09-15
  • 2016-09-13
相关资源
最近更新 更多