Я работаю над проектом с JHipster 5.8.2 и хочу добавить возможность повторного входа в систему без перенаправления. Таким образом, пользователи не теряют свои данные. Проблема в том, что мои компоненты подписаны на исходный запрос (тот, который не работает, потому что токен больше не действителен), и я хотел бы подписаться на запрос повторной попытки. Есть ли способ, которым я могу сделать это? Ниже приведены фрагменты значимого кода
AuthExpiredInterceptor.ts
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
catchError((error, caught) => {
if (error instanceof HttpErrorResponse && error.status === 401) {
this.refreshToken(error).pipe(switchMap(
() => {
const token = this.localStorage.retrieve('authenticationToken')
|| this.sessionStorage.retrieve('authenticationToken');
if (!!token) {
request = request.clone({
setHeaders: {
Authorization: 'Bearer ' + token
}
});
}
// The request I want to subscribe
return next.handle(request);
})).subscribe();
}
return caught;
}
)
);
}
Подписка на результат
protected subscribeToSaveResponse() {
let result=this.http.post<IObject>(this.resourceUrl, object, { observe: 'response' });
result.subscribe((res: HttpResponse<IObject>) => this.onSaveSuccess(),
(res: HttpErrorResponse) => this.onSaveError());
}
Заранее спасибо