Я пытаюсь использовать 0auth с обратным вызовом, который автоматически добавляет токен в конец запроса ... поэтому он должным образом запрещает доступ в моей службе todo
.Я хочу использовать тот же метод getTodos()
для возврата другой конечной точки API, если авторизация не достигнута ... как вернуть данные конечной точки publictodosURL
вместо данных конечной точки todosURL
, если getTodos()
перехватывает401 ошибка в трубе?
по сути, я хочу, чтобы пользователь, не прошедший проверку подлинности, просматривал publictodosURL
, и если он вошел в систему и прошел проверку подлинности, он получит возвращенные данные todosURL
.
export class TodoService {
private todosURL = 'http://localhost:3001/api/todos';
private publictodosURL = 'http://localhost:3001/api/public/todos';
constructor(private http: HttpClient) { }
getTodos() {
return this.http
.get<Todo[]>(this.todosURL)
.pipe(
catchError(this.handleError),
);
}
//MAYBE BY CHECKING THE ERROR HERE? AND THEN SOMEHOW RETURN get(<Todo[]>
//(this.publictodosURL)
private handleError(err: HttpErrorResponse | any) {
console.error('An error occurred', err);
return throwError(err.message || err);
}
}