基本上,我的AppComponent
app.component.html
(我的引导程序组件)看起来如何:
<navigation-top>
<router-outlet></router-outlet>
在我的AppComponent
ngOnInit
我正在调用我的身份验证服务,该服务会返回一个令牌。我需要此令牌来发送每个API请求。
if (!tokenNotExpired()) {
this.authService.login()
.subscribe(
data => {
const key = data.headers.get('Authorization');
this.key = key;
localStorage.setItem('id_token', key);
}
);
} else {
this.key = localStorage.getItem('id_token');
}
但是,我还在我的app.routes.ts
添加了一个Auth Guard,以便router-outlet
只有在有令牌后才会加载组件。
但是,我不确定解决此问题的最佳方法。如果我拨打电话获取AppComponent
中的令牌,那么在开始时,如果我根本没有钥匙,我的Auth Guard将返回false,因此不会加载任何内容。
如何设置逻辑以便等待密钥?
答案 0 :(得分:0)
我将从Auth Guard本身运行身份验证代码,因为它在AppComponent
的{{1}}之前加载。
那对我有用。可能会有更优雅的方法。