Повторите http-вызов, используя перехватчик после firebase getIdToken - PullRequest
0 голосов
/ 06 марта 2019

Я использую перехватчик для управления 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);
}

После того, как я получил новый токен, я, похоже, больше не могу позвонить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...