Bearer Token在Postman上工作,但在localhost上不工作

时间:2019-01-04 15:51:04

标签: angular token postman angular-http bearer-token

我试图在Angular中使用带有承载令牌的授权发出请求。如果我在Postman中发出请求,则它可以工作。但是,如果我是从Angular制作的,它会给我401 Unauthorized http错误。

我确定localstorage.getItem('auth_token')返回的令牌是正确的,因为我在进行检查之前已将其记录下来。

const httpOptions = {
  headers: new HttpHeaders(
    { 'Content-Type': 'application/json' ,
    Authorization: 'Bearer '+ localStorage.getItem('auth_token')})
  };

这是我要使之适用于邮递员的请求:

 getProducts(): Observable<string[]> {
    console.log(localStorage.getItem('auth_token'));
    return this.http.get<string[]>(this.productsURL)
      .pipe(
        tap(_ => this.log('fetched products')),
        catchError(this.handleError('getProducts', []))
      );
  }

1 个答案:

答案 0 :(得分:3)

您的问题是您没有使用创建的标题。

您的代码应如下所示:

return this.http.get<string[]>(this.productsURL, httpOptions)
.pipe(
   tap(_ => this.log('fetched products')),
   catchError(this.handleError('getProducts', []))
);

请注意.get构造函数-除了传递URL外,它还传递了您在其中创建不记名令牌的httpOptions对象。