2017-03-08 77 views
0

我在角2的應用程序有一個AuthService它提供下列公共方法:angular2-jwt在Promise/Observable中使用tokenNotExpired()?

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

在模板我可以檢查用戶是否有

<button [routerLink]="['/signup']" 
     *ngIf="!auth.isAuthenticated()"> 
    Sign Up 
</button> 

我的問題是,如果用戶通過驗證簽出這項工作很好。如果用戶導航路由「/註冊」並登錄auth0.client.login()運行並簽署用戶。模板注意到角度變化檢測導致的變化?! 到目前爲止工作正常。

但是,如果使用的功能isAuthenticated()內AuthService的另一種方法被稱爲在某些組件:

此功能不知道改變「符號」的。或者換另一種方式需要更新,因爲isAuthenticated現在改變爲在簽收前返回true而不是false

在我需要「觀察」的isAuthenticated()狀態,然後再次運行isAuthorized()如果它改變了組件。我怎麼能得到這個工作?

一個例子會很棒,因爲我試圖讓這個工作幾個小時。

回答

0

布爾型類型變量並用** isAuthenticated()**函數檢查它。

+0

我沒有得到這個 –

+0

使用布爾數據類型做一個變量並檢查該函數。意思是,檢查類型是否爲真或假。您在此處使用該函數作爲布爾值。而不是函數使用變量。內部函數通過檢查 –

+0

返回變量值我應該在哪裏創建布爾變量並檢查哪個函數?你的意思是像'let isAuthenticated:boolean = tokenNotExpired()'?在哪個函數裏面? –