Неявный код DocuSign предоставляет токен доступа, который не читается из раздела URL браузера?

#docusignapi

#docusignapi

Вопрос:

Предыстория: — Я пытаюсь реализовать неявное предоставление REST API DocuSign.

Согласно документации, предоставленной DocuSign:-

После получения согласия Служба аутентификации проверяет, что клиентское приложение является действительным и имеет доступ к запрошенной области. Если это так, он перенаправляет токен доступа к предоставленному URI обратного вызова во фрагменте хэша.

Ответ содержит следующие параметры фрагмента хэша:

http://localhost/#access_token=eyJ0eXAi…..9LyiFrUqvdwamp;expires_in=28800amp;token_type

Заявление о проблеме:- После перенаправления мы пытаемся прочитать токен доступа из фрагмента хэша раздела URL, но мы сталкиваемся с проблемой ниже:-

Мы пытаемся открыть окно docusign через iframe, мы получаем следующую ошибку

Отказано в отображении https://account-d.docusign.com/oauth/auth?response_type=tokenamp;scope=signatureamp;client_id=cab75309-6eb3-4969-a15d-fff35513e179amp;redirect_uri=https://www.sirionlabs.com/ во фрейме, потому что он установил для ‘X-Frame-Options‘ значение ‘sameorigin

Итак, мы попытались войти в приложение docusign на другой вкладке браузера, а затем мы не можем прочитать токен доступа от пользователя, хотя мы получаем токен, напечатанный в консоли браузера.

Как мы можем прочитать токен, полученный после входа в службу Docusign, чтобы перенаправить этот токен в наше приложение для дальнейшей обработки?

Ответ №1:

Вы не можете использовать iframe для аутентификации DocuSign. Это проблема безопасности.

Пользователи должны видеть URL вверху, чтобы знать, что это DocuSign и безопасно и т.д.

Пожалуйста, используйте другое окно или перенаправление.

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

1. Привет @Inbar Gazit, я последовал предложенному вами подходу. Но все же мы сталкиваемся с какой-то проблемой. как прочитать значение после хэша в URL-адресе docusign. Можем ли мы изменить # на ‘?’ Я пробовал следующие сценарии:- 1. Когда в URL есть #, angular рассматривает его как маршрут, и созданный маршрут не совпадает, потому что токен уникален для каждого вызова. 2. Когда accessToken принимается в качестве параметра маршрута, я автоматически удаляю токен из URL-адреса при перенаправлении 3. Когда пытался напрямую вызвать серверный API, то также создавал проблему. Поскольку URL-адрес перенаправления содержит фрагмент хэша, он не может напрямую попасть в api

2. Вы также не можете использовать # в redirectUri. Это не просто DocuSign, спецификация OAuth2.0 специально не допускает этот символ.

3. Однако вы можете передать параметры с помощью параметра amp;state= и вернуть их на другой стороне, если это поможет.

4. Извините, я не понял, как добавление параметра состояния поможет в чтении токена доступа. Этот параметр используется, чтобы избежать подделки межсайтового запроса. Мы пытаемся прочитать токен доступа, возвращенный во фрагменте хэша. Пожалуйста, помогите нам, как прочитать токен доступа на уровне клиента из раздела URL браузера и отправить его на серверную часть для дальнейшей обработки.

5. что у вас за перенаправление? он имеет символ #? это недопустимо. Чтобы устранить проблему, используйте URL, который не содержит символа #.