2017-03-08 9 views
0

私は公共の方法で、以下の提供私の角度の2アプリでのAuthServiceを得た:ユーザーがユーザーである場合は私の問題があるangular2-jwt Promise/ObservableでtokenNotExpired()を使用していますか?

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

で認証された場合、私は確認することができ、テンプレートで

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

これは正常に動作しました。ユーザーが "/ signup"のルートに移動し、auth0.client.login()の標識が実行され、ユーザーにサインインした場合、テンプレートは角度変化の検出による変化に気付きます。 これまでのところうまく動作します。

しかし、私は特定のコンポーネントに呼び出されたのAuthServiceの別のメソッド内の機能isAuthenticated()を使用する場合:

この機能は変更「サインイン」を知りません。それとも別の方法を置くにisAuthenticatedが、今私はisAuthenticated()状態を「観察」し、それが変更された場合、再びisAuthorized()を実行するために必要なコンポーネントで。

における記号の前にtrueの代わりfalseを返すに変更されるため、更新する必要があります。どのように私はこれを動作させることができますか?

私はこれを数時間で動作させようとして以来、素晴らしい例があります。

答えて

0

ブール型型変数を使用し、** isAuthenticated()**関数でチェックしてください。

+0

私はこれを取得しません –

+0

ブール型のデータ型で変数を作成し、その関数で確認してください。意味が偽か真であるかどうかを確認する。ここではブール値として関数を使用しています。関数の代わりに変数を使用します。内部関数は変数値をチェックすることによって変数値を返します。 –

+0

どこでブール変数を作成し、どの関数でチェックすべきですか? 'let isAuthenticated:boolean = tokenNotExpired()'のようなものですか?どの機能の中に? –

関連する問題