2016-12-21 38 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