Угловой HttpClient |Эквивалент curl --user (базовая аутентификация) - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь получить доступ к API, используя HttpClient от Angular.

У меня есть ключ: xxyyzz.Согласно документации API, я могу получить доступ к ресурсам с помощью следующего curl:

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

Вопрос: Как я могу реализовать эту базовую аутентификацию с помощью Angulars 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. Доступ к API с помощью curl работает без проблем.

Любая помощь нам очень ценится!

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

Значение основного заголовка авторизации должно быть закодировано:

const httpOptions = {
    headers: new HttpHeaders({
        'Content-Type':  'application/json',
        'Authorization': 'Basic ' + btoa('xxyyzz:')
    })
};
0 голосов
/ 02 апреля 2019

Вот как сделать запрос с базовой аутентификацией

   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 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...