根据oAuth状态返回不同的数据

时间:2018-06-12 17:36:48

标签: javascript angular express oauth

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

0 个答案:

没有答案