DocuSign встроенный URL не отображается в iFrame - PullRequest
0 голосов
/ 29 января 2020

У кого-нибудь когда-нибудь возникали проблемы при встраивании церемонии подписания docusign в iFrame? Я пытаюсь проверить встраивание подписи docusign с помощью iFrame. Но браузеры (tested on Chrome, Firefox) отказываются отображать URL-адрес.

Я получаю URL-адрес для вставки (который выглядит как https://demo.docusign.net/Signing/MTRedeem/v1/XXXXXXXXX?slt=XXX) из DocuSign, а затем устанавливает этот URL-адрес в качестве источника iFrame на моем веб-сайте. Но он просто показывает, что на пустой странице ничего не появляется ( вместо встраивания в iframe, если я просто вставляю URL в строку url, это прекрасно отображает ). Если я проверяю логи консоли в Google Chrome (на win10), я вижу ошибку Refused to display 'https://account-d.docusign.com/recipient/auth?ui_locales=en' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

<iframe src='https://demo.docusign.net/Signing/MTRedeem/v1/XXXXXXXXX?slt=XXX' height='900' width='900'>
</iframe>

iFrame blank page

Если я наблюдаю за вкладкой сети, происходят следующие перенаправления:

Request URL: https://demo.docusign.net/Signing/MTRedeem/v1/XXXXXXXXX?slt=XXX
Request Method: GET
Status Code: 302 Found
Response Headers
Location: https://account-d.docusign.com/managed_token/v1/redeem/?slt=XXX


Request URL: https://account-d.docusign.com/managed_token/v1/redeem/?slt=XXX
Request Method: GET
Status Code: 302 Found
Response Headers
Location: https://demo.docusign.net/Signing/StartInSession.aspx?code=XXX
X-Frame-Options: SAMEORIGIN


Request URL: https://demo.docusign.net/Signing/StartInSession.aspx?code=XXX
Request Method: GET
Status Code: 302 Found
Response Headers
Location: https://demo.docusign.net/Signing/ActivateSecurityChecks.aspx?insession=1&ti=XXX

Request URL: https://demo.docusign.net/Signing/ActivateSecurityChecks.aspx?insession=1&ti=XXX
Request Method: GET
Status Code: 200 OK
Response Headers
Set-Cookie: BIGipDocuSign_Demo_Signing=XXX
X-DocuSign-Node: XXX

Request URL: https://account-d.docusign.com/recipient/auth?ui_locales=en
Request Method: GET
Status Code: 200 OK
Response Headers
X-Frame-Options: SAMEORIGIN
X-DocuSign-TraceToken: XXX
X-DocuSign-Node: XXX

Примечание: Я следовал этого образца из официальных примеров docusign.

РЕДАКТИРОВАТЬ RecipientViewRequest:

{
    "AssertionId":"logging in event id", 
    "AuthenticationInstant":"1\/29\/2020 11:09:26 AM", 
    "AuthenticationMethod":"password", 
    "ClientUserId":"logged in user id", 
    "Email":"my-email@mydomain.com", 
    "ReturnUrl":"https:\/\/subdomain.mydomain.com\/recieve", 
    "UserName":"signerFirst lastName", 
    "XFrameOptions":"allow_from", 
    "XFrameOptionsAllowFromUrl":"https:\/\/subdomain.mydomain.com"
}

РЕДАКТИРОВАТЬ 2
Если я помню, метод внедрения работал для меня в прошлом во время тестирования. Такое поведение отказа от рендеринга в iFrame началось довольно недавно. Может быть, они изменились в конце прошлого месяца.

1 Ответ

0 голосов
/ 29 января 2020

В общем, iframes не рекомендуется из-за совместимости и сложности в устранении неполадок. Вместо этого рекомендуется перенаправить пользователя на URL-адрес, а затем завершить переадресацию returnUrl после завершения.

При этом в Envelopes :: CreateRecipientView call

есть два соответствующих параметра
"xFrameOptions": "allow_from",
"xFrameOptionsAllowFromUrl": "https://example.com"

где параметр xFrameOptions должен быть «allow_from», чтобы включить эту функцию, а AllowFromUrl должен быть доменом вашего сайта.

...