#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, которые не позволяют хранить секреты в угловых или аналогичных приложениях.