Как работать с токеном обновления в DocuSign

#docusignapi #refresh-token

Вопрос:

Я использую поток аутентификации docusign как

При входе в
систему дайте url = «https://account-d.docusign.com/oauth/auth?response_type=tokenamp;scope=signature extendedamp;client_id=39b5f6fb-97ca-XXXXXXXXXXXXXamp;state=a39fh23hnf23XXXXXamp;redirect_uri=http://localhost:4200/callbackdocusign»;

window.open(url, ‘_self’); после успешной проверки верните access_token/expires_in/token_type/состояние.

пожалуйста, объясните, как получить refresh_token? после обновления как получить новый access_token?

Для refresh_token я попробовал как let url = «https://account-d.docusign.com/oauth/auth?response_type=refresh_tokenamp;scope=signature extendedamp;client_id=39b5f6fb-97ca-XXXXXXXXXXXXXamp;state=a39fh23hnf23XXXXXamp;redirect_uri=http://localhost:4200/callbackdocusign»; окно.открыть(url, ‘_self’);

Но он не возвращает refresh_token

Ответ №1:

URL, который вы используете, имеет response_type=token . Этот тип ответа используется для неявной проверки подлинности предоставления и не поддерживает токены обновления. Если вам нужен токен обновления, вы должны использовать предоставление кода авторизации. Ваш URL-адрес будет выглядеть следующим образом

 https://account-d.docusign.com/oauth/auth?response_type=codeamp;scope=signature extendedamp;client_id=39b5f6fb-97ca-XXXXXXXXXXXXXamp;state=a39fh23hnf23XXXXXamp;redirect_uri=http://localhost:4200/callbackdocusign
 

Это обеспечит параметр «код» в URL-адресе, когда ваш пользователь будет перенаправлен после аутентификации. Вы можете использовать этот код для получения фактического доступа и обновления токенов.

Вы можете найти полное объяснение здесь: https://developers.docusign.com/platform/auth/authcode/authcode-get-token/

Ответ №2:

В настоящее время вы используете неявный поток грантов. Он не предоставляет маркер обновления.

Токены обновления предоставляются только с потоком предоставления кода авторизации.

Если вы инициируете поток OAuth из браузера (используя React и т. Д.), То в настоящее время вы не можете использовать поток предоставления кода авторизации, поскольку для этого требуется безопасное хранение секрета идентификатора клиента.

Комментарии:

1. Теперь я использую поток предоставления кода авторизации со SPA в angular, и все работает нормально, но теперь я хочу использовать этот access_token или refresh_token в течение следующих 30 дней, как я могу это сделать? даже я использовал расширенную подпись

2. И я также получаю ошибку в просмотр, Что ошибку в документе: синтаксис ошибка: непредвиденная лексема % в JSON в позиции 0 в JSON-формате.разбор сообщение: «протокол HTTP недостаточности при разборе по demo.docusign.net/restapi/v2.1/accounts/… » название: «HttpErrorResponse» OK: для ложная статус: 200 statustext также: «ОК» URL-адрес: » demo.docusign.net/restapi/v2.1/accounts/… »

3. Пожалуйста, откройте новый вопрос о StackOverflow. Как отмечалось выше, для приложений SPA поддерживается только неявное предоставление. Это связано с RFC OAuth, которые не позволяют хранить секреты в угловых или аналогичных приложениях.