【问题标题】:DocuSign integration using rest api with SPA使用带有 SPA 的 rest api 集成 DocuSign
【发布时间】:2021-10-05 14:02:52
【问题描述】:

我正在将应用程序代码授予用于 Angular for Angular 应用程序。

问题 1- 刷新令牌在接下来的 2 天内无效,即使签名已延长,我如何才能将访问令牌延长 30 天?

Issue2- 查看该文档

error: SyntaxError: Unexpected token % in JSON at position 0 at JSON.parse message: 

“demo.docusign.net/restapi/v2.1/accounts/解析过程中的Http失败...” 名称:“HttpErrorResponse” ok:false 状态:200 statusText:“OK” url:“demo.docusign.net/restapi/v2.1/accounts/CCCC-XXXXX-a54115-ddff-588/envelopes/XXXXXX-ccccc-30c1ce29f66a /documents/1

header = header.append('Access-Control-Allow-Methods', 'GET,POST,OPTIONS,DELETE,PUT');
    header = header.append('Access-Control-Allow-Origin', '*');
    header = header.append('Access-Control-Allow-Credentials', 'true');
    header = header.append('Content-Type', 'application/pdf');
    header = header.append('accept', 'application/pdf');
    headers = headers.append('Authorization', "Bearer " + token);

步骤 1-https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature extended&client_id=39b5f6fb-97ca-XXXXXXXXXXXXX&state=a39fh23hnf23XXXXX&redirect_uri=http://localhost:4200/callbackdocusign 结果 - 成功

第 2 步 - 使用代码获取访问令牌

//curl--header "Authorization: Basic BASE64_COMBINATION_OF_INTEGRATION_AND_SECRET_KEYS"
    //--data "grant_type=authorization_code&code=YOUR_AUTHORIZATION_CODE"
    //--request POST https://account-d.docusign.com/oauth/token
   let key = btoa(environment.client_id_authentication_code_grant + ":" + environment.secret_key_authentication_code_grant);
    let paramInHeader: any = [];
    paramInHeader.push({ Name: 'Content-Type', Value: 'application/x-www-form-urlencoded;charset=UTF-8' });
    paramInHeader.push({ Name: 'Authorization', Value: "Basic " + key });
    paramInHeader.push({ Name: 'Accept', Value: "application/json" });
    var details = {
        'grant_type': 'authorization_code',
        'code': code
    };
    

发帖https://account-d.docusign.com/oauth/token 结果 - 成功

第 3 步 - 获取用户信息

https://account-d.docusign.com/oauth/userinfo
headers = headers.append('Authorization', "Bearer " + token);
headers = headers.append('content-type', 'application/json');
headers = headers.append('Access-Control-Allow-Origin', '*');

结果 - 成功

第 4 步 - 获取刷新令牌

//curl--header "Authorization: Basic MjMwNTQ2.....Y4MmM3YmYyNzZlOQ=="
    //--data "grant_type=refresh_token&refresh_token=ey4fd.....3d31d`
    //--request POST https://account-d.docusign.com/oauth/token


let key = btoa(environment.client_id_authentication_code_grant + ":" + environment.secret_key_authentication_code_grant);
    let paramInHeader: any = [];
    paramInHeader.push({ Name: 'Content-Type', Value: 'application/x-www-form-urlencoded;charset=UTF-8' });
    paramInHeader.push({ Name: 'Authorization', Value: "Basic " + key });
    paramInHeader.push({ Name: 'Accept', Value: "application/json" });

    var details = {'grant_type': 'refresh_token','refresh_token': refresh_token};

结果 - 成功

【问题讨论】:

    标签: docusignapi


    【解决方案1】:

    问题 1- 刷新令牌在接下来的 2 天内无效,即使签名已延长,我如何才能将访问令牌延长 30 天?

    基于浏览器的应用程序不支持授权码授予,因为该应用程序无法保护客户端 ID 机密。此限制来自 OAuth RFC。

    从基于浏览器的应用程序中,仅支持隐式授权(8 小时访问令牌)。如果您有应用程序的后端,并且应用程序用户登录到后端,那么后端可以实现授权代码授权并使用刷新令牌进行续订。

    问题 2- 查看该文档

    EnvelopeDocuments.get 返回实际的 PDF 文档,它是一个二进制文件。所以它不是 JSON,你不应该尝试将它解析为 JSON。只需向用户展示或让他们下载即可。

    【讨论】:

    • 问题 1 - 现在我正在使用代码授予并使用刷新令牌获取令牌,但它仍然无法正常工作,第二天当我使用使用 refresh_token 生成的相同令牌时出现错误问题 2-我该如何获取该文件的 uri 或路径 - 以便用户可以单击该链接 - 查看状态 - 下载?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 2023-02-10
    • 2019-07-18
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多