Angular 6 Interceptor: запрос снова после получения нового токена - PullRequest
0 голосов
/ 23 ноября 2018

следующая проблема с моим перехватчиком в Angular 7: когда я получаю 401 (не авторизованный) из моего бэкэнд-API, обновление токена происходит успешно, но запрос больше не выполняется.Кто-нибудь может мне помочь?

Спасибо!

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request)
        .pipe(
            catchError((error: any, caught: Observable<HttpEvent<any>>) => {
                if (error.status === 401) {
                    this.oauthService = this.injector.get(OAuthService);
                    this.oauthService.silentRefresh().then(() => {
                        return next.handle(request);
                    }).catch(() => this.oauthService.logOut());
                }
                return of(error);
            }) as any
        );
}

1 Ответ

0 голосов
/ 23 ноября 2018

Вы возвращаете наблюдаемое из блока then.Вы не подписаны на это, поэтому запрос HttpRequest не выполняется.Используйте fromPromise, передайте это в catch и верните вызов fromPromise вместо of(error).

...