Я использую перехватчик для управления http-вызовами.Когда я получаю ошибку 401, я хочу вызвать firebase, чтобы обновить токен, а затем повторить первоначальный запрос с обновленными заголовками.
Перехватчик:
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(tap((event: HttpEvent<any>) => { },
error => {
if (error instanceof HttpErrorResponse) {
if (error.status === 401) {
this.authService.refreshToken().then(token => {
const clonedRequest = request.clone({ headers: request.headers.set('Bearer ', token) });
return next.handle(clonedRequest);
});
}
}
}));
}
Функция обновления AuthService:
refreshToken() {
return this.fireAuth.auth.currentUser.getIdToken(true);
}
После того, как я получил новый токен, я, похоже, больше не могу позвонить.