Перехватчик не выполняется, когда я обновляю свою страницу, используя «обновление / перезагрузку браузера» или F5 - PullRequest
0 голосов
/ 18 апреля 2019

В настоящее время я изучаю угловой 7, но я столкнулся с проблемой и хотел бы, чтобы вы помогли мне понять, что происходит. Я использую аутентификацию JWT (Spring Boot Security), и при каждом щелчке вызывается мой перехватчик, чтобы установить токен перед отправкой запроса на сервер. Когда я использую браузер назад / вперед, все работает нормально. Но если нажать «обновить браузер», перехватчик не звонит, и я получаю страницу ошибки Whitelabel. Мои вопросы: 1- почему обновление не вызывает мой перехватчик? 2- Знаете ли вы, как это можно решить?

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpErrorResponse, 
HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { Router } from '@angular/router';
import { TokenStorage } from './public/portal/token.storage';
import 'rxjs/add/operator/do';

 const TOKEN_HEADER_KEY = 'Authorization';
@Injectable()
export class Interceptor implements HttpInterceptor {
constructor(private token: TokenStorage, private router: Router) {
}
intercept(req: HttpRequest<any>, next: HttpHandler): 
Observable<HttpEvent<any>> {
let authReq = req;
if (this.token.getToken() != null) {authReq = req.clone({ 
    headers:req.headers.set(TOKEN_HEADER_KEY, 'Bearer ' + 
    this.token.getToken()) });
}
return next.handle(authReq).do(
  (err: any) => {

    if (err instanceof HttpErrorResponse) {
      if (err.status === 401) {
        this.router.navigate(['login']);
      }
    }
    console.log(err.status);
  }
);
}
}

Спасибо за помощь

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