我有以下架构:
Navbar是一个包含以下内容的组件:
loggedIn = false;
constructor(private authService: AuthService) {
this.loggedIn = authService.isAuthenticated();
}
根据变量显示不同的链接
authService中的方法:
isAuthenticated() : boolean {
return tokenNotExpired();
}
authenticate(email: string, password: string) : Promise<void> {
const headers = new Headers({
'Content-Type': 'application/json'});
const body = JSON.stringify({ email, password });
return this.http.post(`${apiUrl}/auth/login`, body, { headers })
.toPromise()
.then(response => {
const data = response.json();
this.user = data.user;
localStorage.setItem('id_token',data.token);
});
}
当isAuthenticated()返回另一个值时,我希望在导航栏中收到通知。
我应该在AuthService中使用可观察的值而不是仅检查有效令牌吗?我应该在验证方法的成功中发出事件吗?
我只能通过@input
找到有关父子事件发送者的信息。
注意:我正在使用angular2-jwt,并且从auth.guard中为受保护路由调用isAuthenticated()方法。