我的角度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()
。我怎么能让这个工作?
一个例子很棒,因为我试图让它在几小时后开始工作。
答案 0 :(得分:0)
使用布尔类型变量并使用** isAuthenticated()**函数进行检查。