【发布时间】:2020-06-03 06:39:58
【问题描述】:
问题: DocuSign 在获取访问令牌时似乎忽略了在 HTTP 标头中设置的 redirect_uri。
对于上下文,我使用的是 PHP 和 cURL。当我发送 cURL 请求时,授权成功,因为我确实获得了访问令牌和刷新令牌。唯一的问题是,DocuSign 在授权成功后没有像它应该的那样执行重定向。
这是我在我的代码中也使用的从 Postman 获取的 PHP - cURL 代码。为了简洁起见,我缩短了某些字符串。 redirect_uri 参数在 CURLOPT_POSTFIELDS 中:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://account-d.docusign.com/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "grant_type=authorization_code&code=eyJ0eXAiOiJ...UDa8uJ9A&redirect_uri=http%3A//localhost/docusign/getData.php",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"Authorization: Basic NTYxN...DkxMA==",
"Cookie: __RequestVerificationToken=ARmOPr...tg0B0"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
我已密切关注此 DocuSign 文档,了解如何遵循授权码授予流程:https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-code-grant
非常感谢任何帮助!
【问题讨论】:
-
我很困惑。您看到 DocuSign 登录屏幕了吗?输入你的信誉?然后你的应用程序没有重定向?还是此代码只是通过发出请求而不需要您登录来获取令牌?
-
我确实看到了登录屏幕并且可以正常登录(这是第 1 步)。第 1 步完成后(也就是请求完成后),我按预期重定向到第 1 步中指定的 redirect_uri。但是,当我在第 2 步时,我确实成功地进行了身份验证并从 API 获取了我需要的信息,但是 API 没有使用我为第 2 步指定的 redirect_uri。
标签: php curl docusignapi