我正在尝试使用带有回调的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);
}
}