如果后端刷新令牌成功,如何做可见组件

时间:2019-02-10 15:27:03

标签: angular angular4-httpclient

authService中的方法,该方法将请求发送到后端服务器,并使用访问令牌以json的形式获取响应

 refresh() {
        if (JSON.parse(localStorage.getItem('auth')) !== null && JSON.parse(localStorage.getItem('auth')) !== undefined) {
          const body = ...
          let headers = ...
          return this.http.post(this.authUrl, body.toString(), {
            headers
          });
        }
      }

上面正确运行的方法

在导航栏组件中具有按钮:

<button mat-menu-item (click)="addTrip()" *ngIf="isLogged()">
  <mat-icon>add</mat-icon>
  <span>add Trip</span>
</button>

仅当localStorage中存在令牌且此令牌未过期时,该令牌才可见

isLogged方法无法按需工作。不可能调用subscribe this.auth.refresh.subscribe(.....返回true或false吗?...),因为subscribe是不同步的方法。

 isLogged() {
   if (JSON.parse(localStorage.getItem('auth')) !== null && JSON.parse(localStorage.getItem('auth')) !== undefined)   {
     this.auth.refresh();
   } else {
     return false;
   }
 }

0 个答案:

没有答案