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;
où 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.
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);
});