2016-12-21 8 views
1

Я пытаюсь получить пользовательскую информацию из DocuSign API после получения токена доступа (response_type = токена) из вызова неявного гранта oauth2.Получить Userinfo от Oauth2 DocuSign API Implicit Grant

Мой код выглядит следующим образом:

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%. Кто-нибудь знает, что я делаю неправильно? FYI, я использую службу PhoneGap Build для создания мобильного приложения.

+0

К сожалению, вам необходимо предоставить дополнительную информацию. Неясно, правильно ли аутентифицирован пользователь. Он попросил войти? –

+0

Дополнительная информация: – salemanager

+0

Дополнительная информация: По-видимому, мой код правильно передает заголовок авторизации. Моя песочница DocuSign и ключ интегратора определяются как «Это мобильное приложение». Моим возвратом uri является http: // localhost/callback. Проблема заключается в том, что DocuSign выдает следующую ошибку: {«errorCode»: «RESOURCE_NOT_FOUND», «сообщение»: «Предоставленный URL не разрешает ресурс».} Кто-нибудь получил эту ошибку при попытке получить userinfo с помощью неявного вывода? – salemanager

ответ

0

Две вещи:

  1. Заголовок должен быть { 'Authorization': 'Знаменосец' + DSaccesstoken}.
  2. API-интерфейс DocuSign Rest не допускается с клиентской стороны, до ограничения CORS. В случае, если вы вызываете его из браузера, вам может понадобиться настроить прокси-сервер (например, с помощью узла). Этот прокси-сервер получит ajax-вызовы и перенаправит их на DocuSign API. Вы можете использовать DocuSign official NPM package.