web-dev-qa-db-fra.com

Angular 6 - httpClient en passant l’authentification de base dans httpOptions

J'ai un service dans Angular 6) et j'essaie de modifier un enregistrement, mais cela signifie que je ne suis pas autorisé.

En ce moment j'ai ceci:

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

  update(id, title, content) {
    const updateData = { id: id, title: title, content: content };
      return this.http.put(`http://myurl/${id}`, updateData, httpOptions);
  }

Ma question est:

Comment ajouter une autorisation de base à mes httpOptions ou dois-je l'ajouter directement à la méthode de mise à jour?

12
MarkHill2018

Vous pouvez ajouter une autorisation de base en l'ajoutant dans les en-têtes, comme ci-dessous:

var headers_object = new HttpHeaders();
headers_object.append('Content-Type', 'application/json');
headers_object.append("Authorization", "Basic " + btoa("username:password"));

const httpOptions = {
  headers: headers_object
};
21
Prachi

En regardant la documentation angular.io, c'est assez simple.

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

Et vous pouvez utiliser la constante httpOptions comme vous l'avez fait.

Pour plus d'informations: https://angular.io/guide/http#adding-headers

6
Mehdi Benmoha

Ajoutez simplement votre jeton/autorisation dans les en-têtes comme ceci -

let httpHeaders = new HttpHeaders()
              .set('authorization', this.authorizationHeaderValue)
              .set('Content-Type', application/json); 

Les deux ont des méthodes telles que set et append. set construit un nouveau corps avec une nouvelle valeur et append construit un nouveau corps avec une valeur ajoutée

PS: Ici, je suppose que la variable (this.authorizationHeaderValue) est une valeur incluse comme Bearer ou Basic ou peu importe, modifiez-la en conséquence.

Pour plus lire ici

4
Pardeep Jain