web-dev-qa-db-fra.com

Utilisation d'Axios GET avec l'en-tête d'autorisation dans l'application React-Native

J'essaie d'utiliser axios pour une requête GET avec une API qui nécessite un en-tête Authorization.

Mon code actuel:

const AuthStr = 'Bearer ' + USER_TOKEN;

USER_TOKEN est le jeton d'accès nécessaire. Cette concaténation de chaîne peut poser problème comme si je publiais ceci sous le nom AuthStr = 'Bearer 41839y750138-391', la requête GET suivante fonctionne et renvoie les données que je recherche.

axios.get(URL, { 'headers': { 'Authorization': AuthStr } })
  .then((response => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

J'ai également essayé de définir cela comme un en-tête global sans succès.

19
Ally Haire

Pour quiconque trouve ce post et pourrait le trouver utile ... Il n'y a en fait aucun problème avec mon code. J'ai commis l'erreur de demander un code d'accès de type client_credentials au lieu d'un code d'accès par mot de passe (#facepalms). FYI, je me sers de la poste urlencoded post donc l'utilisation de la chaîne de requête .. Donc, pour ceux qui peuvent être à la recherche d'un exemple de code .. voici ma demande complète

Un grand merci à @swapnil pour m'avoir aidé à résoudre ce problème.

   const data = {
      grant_type: USER_GRANT_TYPE,
      client_id: CLIENT_ID,
      client_secret: CLIENT_SECRET,
      scope: SCOPE_INT,
      username: DEMO_EMAIL,
      password: DEMO_PASSWORD
    };



  axios.post(TOKEN_URL, Querystring.stringify(data))   
   .then(response => {
      console.log(response.data);
      USER_TOKEN = response.data.access_token;
      console.log('userresponse ' + response.data.access_token); 
    })   
   .catch((error) => {
      console.log('error ' + error);   
   });



const AuthStr = 'Bearer '.concat(USER_TOKEN); 
axios.get(URL, { headers: { Authorization: AuthStr } })
 .then(response => {
     // If request is good...
     console.log(response.data);
  })
 .catch((error) => {
     console.log('error ' + error);
  });
27
Ally Haire