J'ai un point de terminaison API que je tente de tester avec l'application Google: "Postman". Je dois définir les en-têtes qui utilisent «l'authentification de base». Je ne suis pas sûr de ce qui devrait aller dans 'Header: Value'
Voici comment l'administrateur a déclaré que les en-têtes doivent être définis: "La valeur de l'en-tête est le mot" Basic "suivi de votre nom d'organisation et de votre clé Api séparés par un signe deux-points et codés en base64."
J'ai essayé de nombreuses choses mais je ne comprends pas très bien. L'erreur que je reçois est "Message: Le jeton n'est pas défini".
Votre champ d'en-tête devrait ressembler à ceci:
Header
: Authorization
Value
: Basic base64('YourOrgName:YourAPIKEY');
Vous pouvez obtenir la valeur base64 de votre chaîne ici:
Par exemple, pour my-org-name:123key4api
, il devrait s'agir de bXktb3JnLW5hbWU6MTIza2V5NGFwaQ==
.
L'en-tête complet ressemblerait à ceci:
Authorization: Basic bXktb3JnLW5hbWU6MTIza2V5NGFwaQ==
On dirait que vous rencontrez des difficultés pour obtenir la valeur base64. Eh bien, vous pouvez utiliser la fonction intégrée dans Javscript comme ci-dessous.
Il suffit d’exécuter le code ci-dessous dans n’importe quel runtime JS (le plus simple serait - onglet de la console ouverte dans l’outil de développement Chrome)
"username:password!" // Here I used basic Auth string format
// Encode the plain string to base64
btoa("username:password!"); // output: "dXNlcm5hbWU6cGFzc3dvcmQh"
// Decode the base64 to plain string
atob("dXNlcm5hbWU6cGFzc3dvcmQh"); // output: "username:password!"
Rassembler le tout dans un script de pré-requête .__ (puis utilisez le access_token pour oauth).
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}};
var userPass = pm.environment.get("oauth_key") + ':' + pm.environment.get("oauth_secret")
pm.sendRequest({
url: pm.environment.get("basepath")+"/oauthpreview/token",
method: 'POST',
header: {
'Accept': 'application/json',
'cache-control':"no-cache",
'Authorization' : 'Basic ' + Base64.encode(userPass),
'Content-Type': 'application/x-www-form-urlencoded'
},
body: {
mode: 'urlencoded',
urlencoded: [
{key: "grant_type", value: "client_credentials", disabled: false}
]
}
}, function (err, res) {
pm.environment.set("access_token", res.json().access_token);
})
Nous sommes en 2019 et avec la version 6.5.3, nous avons un onglet séparé pour utiliser différents types de techniques d'authentification.
Pour l’authentification de base, il vous suffit de donner le nom d’utilisateur et le mot de passe après avoir sélectionné «Auth de base» sous l’onglet Authentication.