Я хотел знать, как перенаправить на страницу входа в систему, когда я вызываю безопасный URL-адрес, зная, что вы не можете внедрить navController в службу
Я создал свой расширенный сервис Http следующим образом:
@Injectable()
export class CustomHttp extends Http {
constructor (backend: XHRBackend, options: RequestOptions) {
let token = localStorage.getItem('auth_token');
options.headers.set('Authorization', `Bearer ${token}`);
super(backend, options);
}
request(url: string|Request, options?: RequestOptionsArgs): Observable<Response> {
let token = localStorage.getItem('auth_token');
if (typeof url === 'string') {
if (!options) {
// let's make option object
options = {headers: new Headers()};
}
options.headers.set('Authorization', `Bearer ${token}`);
} else {
url.headers.set('Authorization', `Bearer ${token}`);
}
return super.request(url, options).catch(this.catchAuthError(this));
}
private catchAuthError (self: CustomHttp) {
return (res: Response) => {
if (res.status === 401 || res.status === 403) {
}
}
return Observable.throw(res);
};
}
}
благодарю вас