wake-up-neo.com

Der Versuch, 'Postman' zu verwenden, hat Probleme beim Festlegen der Header für die Basiszugriffsauthentifizierung

Ich habe einen API-Endpunkt, den ich mit der Google-App testen möchte: "Postman". Ich muss die Kopfzeilen festlegen, die "Standardauthentifizierung" verwenden. Ich bin nicht sicher, was in "Header: Value" gehen soll

So sagte der Administrator, die Header sollten gesetzt werden: "Der Head-Wert ist das Word 'Basic', gefolgt von Ihrem Organisationsnamen und Ihrem Api-Schlüssel, getrennt durch einen Doppelpunkt und die codierte Base64-Funktion."

Ich habe zahlreiche Dinge ausprobiert, aber ich bekomme es nicht ganz richtig. Der Fehler, den ich erhalte, ist "Nachricht: Token nicht gesetzt".

17
fresh5447

Ihr Headerfeld sollte so aussehen:

Header: Authorization

Value: Basic base64('YourOrgName:YourAPIKEY');

Den base64-Wert Ihrer Zeichenfolge erhalten Sie hier:

https://www.base64encode.org/

Für my-org-name:123key4api sollte es beispielsweise bXktb3JnLW5hbWU6MTIza2V5NGFwaQ== sein.

Der komplette Header würde folgendermaßen aussehen:

Authorization: Basic bXktb3JnLW5hbWU6MTIza2V5NGFwaQ==

41
MinusFour

Sieht so aus, als hätten Sie Schwierigkeiten, den base64-Wert zu erhalten. Sie können die eingebaute Funktion in Javscript wie folgt verwenden.

Führen Sie einfach den Code in einer beliebigen JS-Laufzeitumgebung aus.

"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!"
5
naveen

Alles in einem Pre-Request-Skript zusammenstellen.

    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);
      })
2
Sentient

Es ist 2019 und mit Version 6.5.3 haben wir eine eigene Registerkarte, um verschiedene Authentifizierungstechniken zu verwenden.

Für die Basisauthentifizierung müssen Sie nur den Benutzernamen und das Kennwort eingeben, nachdem Sie auf der Registerkarte Authentication "Basic Auth" ausgewählt haben

 enter image description here

0
Amit Patel