我试图获取IdToken并通过HttpInterceptor自动将其应用于标头,但由于某种原因,它获得了之前登录的用户令牌。如果应用程序被删除并重新安装,则在您第一次注册用户时它不起作用,并且仅在第二次注册时起作用,但它再次使用先前用户的令牌。这是我的代码:
export class TokenInterceptor implements HttpInterceptor {
IdToken: string;
authState: any;
constructor(public afAuth: AngularFireAuth) {
this.afAuth.auth.onAuthStateChanged(user =>
{
this.authState = user;
user.getIdToken(true).then((idToken =>
{
this.IdToken = idToken;
}));
});
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
setHeaders: {
'Authorization': this.IdToken
}
});
return next.handle(request);
}
}
据我所知,getIdToken(true)应该刷新它,但看起来它不在这里工作。