使用Promise / Observable中的tokenNotExpired()的angular2-jwt?

时间:2017-03-08 15:18:48

标签: angular jwt observable

我的角度2应用程序中有一个AuthService,提供以下公共方法:

public isAuthenticated(): boolean {
  /* check if id_token is expired or not */
  return tokenNotExpired();
}

在模板中,我可以检查用户是否通过

进行了身份验证
<button [routerLink]="['/signup']"
        *ngIf="!auth.isAuthenticated()">
  Sign Up
</button>

我的问题是,如果用户已退出,则此工作正常。如果用户导航到路由&#34; /注册&#34;并且auth0.client.login()中的标志会运行并对用户进行签名。模板会注意到角度变化检测引起的变化?! 到目前为止工作正常。

但是如果我在另一个在某些组件中调用的AuthService方法中使用函数isAuthenticated()

public isAuthorized(): Promise<boolean> {

  return new Promise(resolve => {

    if(!this.isAuthenticated()) {
      resolve(false);
    }

    ... further logic

  }
}

此功能不知道&#34;登录&#34;更改。或者另外需要更新,因为isAuthenticated现在更改为在登录前返回true而不是false

在我需要的组件中,观察&#34; isAuthenticated()状态,如果更改,则再次运行isAuthorized()。我怎么能让这个工作?

一个例子很棒,因为我试图让它在几小时后开始工作。

1 个答案:

答案 0 :(得分:0)

使用布尔类型变量并使用** isAuthenticated()**函数进行检查。