Угловой 6 перехватчик не может обработать ответ - PullRequest
0 голосов
/ 12 сентября 2018

Я включил на своем промежуточном программном обеспечении Laravel API от tymon authorizeAndRefresh, который, как я вижу, должен обновить токен и отправить обратно.Для этой цели я сделал перехватчик

intercept(req: HttpRequest<any>, next: HttpHandler):
    Observable<HttpEvent<any>> {
    const authToken = localStorage.getItem('fb_token');

    if (authToken) {
      const request = req.clone({
        headers: req.headers.set('Authorization', 'Bearer ' + authToken)
      });

      return next.handle(request).pipe(
        tap(event => {
          console.log(event);
          if (event instanceof HttpResponse) {
            if (event.headers['token']) {
              console.log(event.headers);
              const token = event.headers['Authorization'].split(' ')[1];
              localStorage.setItem('fb_token', token);
              this.store.dispatch({type: Actions.AUTHENTICATED});
            } else {
              this.store.dispatch({type: Actions.DEAUTHENTICATED});
            }
          }
        })
      );
    }

    return next.handle(req);
  }

Однако похоже, что здесь нет дескриптора ответа, поскольку console.log никогда не вызывается, а также дальнейшие шаги.

Пожалуйста, помогите мне понятьэто из

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018

Вы пытались поместить console.log прямо в начале функции intercept (), чтобы посмотреть, запущен ли он вообще?

Добавили ли вы свой класс перехватчиков к своим поставщикам модулей следующим образом?

import { HTTP_INTERCEPTORS } from '@angular/common/http';

providers: [
{
  provide: HTTP_INTERCEPTORS,
  useClass: MyHttpInterceptorClass,
  multi: true
}
0 голосов
/ 12 сентября 2018

Проблема проста.Так как у меня есть проверка авторизации на моем сервере, а также проверка ролей, я получаю ошибки, однако, поскольку перехватчик является Osbervable, он имеет следующие обратные вызовы next, error, complete, и я обработал только следующее, пока получаю ошибку.Таким образом, когда я получил ошибки, я не получил никаких заголовков.

0 голосов
/ 12 сентября 2018

Я добавил перехватчик уведомлений в проект NGIR , и он работает нормально, вы можете увидеть пример перехватчика ответов в этом файле проекта

Ссылка на перехватчик уведомлений NGIR

Надеюсь, это поможет.

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