我正在尝试使用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没有问题。
任何帮助我们非常感谢!
需要对基本Authorization标头的值进行编码:
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('xxyyzz:')
})
};
这是如何使用基本身份验证发出请求
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 })