2016-12-21 35 views
1

我試圖從隱式授予oauth2調用收到訪問令牌(response_type =令牌)後從DocuSign API獲取userinfo。從Oauth2獲取用戶信息DocuSign API隱含的授權

我的代碼如下所示:

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 + ". "); 
    }); 

}); 

的幾點...... DSaccesstoken是一個包含「從收到的DocuSign承載接入令牌」的變量。代碼執行成功,但響應數據看起來像html,當它假設包含json時。我也試過datatype: 'json',但那也行不通。我也試過用headers: {'Authorization': DSaccesstoken}而不是beforeSend,但那也沒用。

我假設頭沒有正確傳遞給DocuSign,但我不是100%確定。有誰知道我做錯了什麼?僅供參考,我正在使用PhoneGap Build服務來創建移動應用程序。

+0

對不起,您需要提供更多信息。尚不清楚用戶是否已正確認證。他是否被要求登錄? –

+0

更多信息: – salemanager

+0

更多信息:顯然,我的代碼正確傳遞了授權標頭。我的DocuSign沙箱和集成商密鑰被定義爲「這是一個移動應用程序」。我的返回URI是http:// localhost/callback。問題是DocuSign出現以下錯誤:{「errorCode」:「RESOURCE_NOT_FOUND」,「message」:「提供的URL不解析爲資源。」}有沒有人在嘗試使用隱式oauth檢索userinfo時收到此錯誤? – salemanager

回答

0

兩件事情:

  1. 頭應該是{ '授權': '承載' + DSaccesstoken}。
  2. DocuSign Rest API不允許從客戶端,受到CORS限制。如果您從類似瀏覽器的方面調用它,您可能需要考慮設置代理服務器(例如使用節點)。該代理服務器將接收ajax調用並將它們重定向到DocuSign API。您可以使用DocuSign official NPM package