Angular HttpClient |相当于curl --user(基本身份验证)

问题描述 投票:0回答:2

我正在尝试使用Angular的HttpClient访问API。

我有一把钥匙:xxyyzz。根据API的文档,我可以使用以下curl访问资源:

curl --user 'key:' https://rest.apiname.com

问题:如何使用Angularjs HttpClient实现此基本身份验证?

我试过了:

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json',
    'Authorization': 'Basic xxyyzz:'
  })
};

this._http.get('https://rest.apiname.com/resource', httpOptions).subscribe(
  data => {
    console.log(data);
  },
  err => {
    console.log(err);
  }
)

这失败了401.使用curl访问API没有问题。

任何帮助我们非常感谢!

angular http curl angular-httpclient
2个回答
2
投票

需要对基本Authorization标头的值进行编码:

const httpOptions = {
    headers: new HttpHeaders({
        'Content-Type':  'application/json',
        'Authorization': 'Basic ' + btoa('xxyyzz:')
    })
};

0
投票

这是如何使用基本身份验证发出请求

   const basicAuth = username + ':' + password;
    let Headers = new HttpHeaders();
    Headers = Headers.append('Authorization', 'Basic ' + btoa(basicAuth));
    return this.http.post<any>(`${this.authUrl}getLoggedInUserInfo.json`, null, { headers: Headers })
© www.soinside.com 2019 - 2024. All rights reserved.