2016-12-21 1 views
1

Ich versuche die Benutzerinfo von der DocuSign API zu bekommen, nachdem ich das Zugriffstoken (response_type = token) von einem impliziten Grant oauth2 Aufruf erhalten habe.Benutzerinfo von Oauth2 beziehen DocuSign API Implizite Freigabe

Mein Code sieht wie folgt aus:

request = $.ajax({ 
    type: 'GET', 
    xhrFields: {withCredentials: true}, 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('Authorization', DSaccesstoken); 
     }, 
    url: DSuserurl 
    }); 

request.done (function (response, textStatus, jqXHR) { 
alert(response); 
} 

request.fail(function (jqXHR, textStatus, errorThrown){ 
    alert("Error retrieving DocuSign User Account Information: " + textStatus + " " + errorThrown + ". "); 
    }); 

}); 

Ein paar Punkte ... DSaccesstoken ist eine Variable, die 'Bearer Zugriffstoken von DocuSign erhalten' enthält. Der Code wird erfolgreich ausgeführt, aber die Antwortdaten sehen wie HTML aus, wenn angenommen wird, dass sie json enthalten. Ich habe auch versucht datatype: 'json', aber das funktioniert auch nicht. Ich habe auch versucht mit headers: {'Authorization': DSaccesstoken} statt vorherSenden, aber das hat auch nicht funktioniert.

Ich gehe davon aus, dass die Kopfzeile nicht korrekt an DocuSign übergeben wird, aber ich bin mir nicht 100% sicher. Weiß jemand was ich falsch mache? Zu Ihrer Information: Ich verwende den PhoneGap Build Service, um eine mobile App zu erstellen.

+0

Entschuldigung, Sie müssen mehr Informationen zur Verfügung stellen. Es ist nicht klar, dass der Benutzer ordnungsgemäß authentifiziert wurde. Wird er gebeten, sich einzuloggen? –

+0

Weitere Informationen: – salemanager

+0

Weitere Informationen: Anscheinend übergibt mein Code den Berechtigungsheader korrekt. Mein DocuSign-Sandbox- und Integratorschlüssel ist definiert als "Dies ist eine mobile App". Meine Rückkehr-URL ist http: // localhost/callback. Das Problem ist, dass DocuSign den folgenden Fehler ausgibt: {"errorCode": "RESOURCE_NOT_FOUND", "message": "Die angegebene URL wird nicht in eine Ressource aufgelöst."} Hat jemand diesen Fehler beim Abrufen von Benutzerinfo mit implizitem oauth erhalten? – salemanager

Antwort

0

Zwei Dinge:

  1. Der Header sollte {: 'Bearer' + DSaccesstoken 'Authorization'} sein.
  2. Die DocuSign Rest-API ist von der clientseitigen zur CORS-Einschränkung NICHT erlaubt. Wenn Sie es von einer Browser-ähnlichen Seite aus aufrufen, sollten Sie einen Proxy-Server einrichten (z. B. mit Knoten). Dieser Proxy-Server erhält Ajax-Anrufe und leitet sie an die DocuSign-API um. Sie können DocuSign official NPM package verwenden.