当前位置: 首页 > 知识库问答 >
问题:

发布jwtToken时DocuSign“invalid\u grant”

简烨烁
2023-03-14

我正试图按照这里的步骤实现“服务集成身份验证”docusign docs,在请求访问令牌之前,它做得很好,您可以在其中发送jwt令牌(格式良好)

我总是得到“invalid_grant”,根据那个文件,是因为一些声明是无效的。这个错误还有其他原因吗?所有的声明看起来都很好

C#:

//request access token
        var client3 = new RestClient("https://" + _host);
        var request3 = new RestRequest("/oauth/token", Method.POST);
        request3.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request3.AddParameter("grant_type", "urn:ietf:params:oauth:grant-type:jwt-bearer");

        var headers = new[]
        {
            new Claim("alg", "RS256"),
            new Claim("typ", "JWT"),
        }.ToList();

        var claims = new[] {
            new Claim("iss", _integrationKey), //<-- integration key
            new Claim("sub", OAuthGrant.Sub), //<-- returned from /oauth/userinfo (OK)
            new Claim("iat", ToUnixTime(DateTime.Now).ToString(), ClaimValueTypes.Integer64),
            new Claim("exp", ToUnixTime(DateTime.Now.AddHours(1)).ToString(), ClaimValueTypes.Integer64),
            new Claim("aud", _host), //<-- "account-d.docusign.com"
            new Claim("scope", "signature"),
        }.ToList();

        //build jwt from private key. token decodes just fine from https://jwt.io/
        var jwtToken = CreateToken(claims, headers, "private-key.pem", Server.MapPath("/"));
        request3.AddParameter("assertion", jwtToken);

        System.Diagnostics.Debug.WriteLine("jwtToken:" + jwtToken);

        var response = client3.Execute<OAuthToken>(request3);

        System.Diagnostics.Debug.WriteLine("response content:" + response.Content); //<-- getting "invalid_grant"

        return response.Data;

使用验证jwt令牌https://jwt.io/而且解码很好。Is docusign演示沙盒

提前谢谢daniel

共有1个答案

澹台宾白
2023-03-14

我的假设是,您使用的库正在为您生成错误的断言。您还可以检查DS SDK中的ConfigureJwtAuthorizationFlow方法,它将帮助您按照DS API所期望的正确方式生成断言。

 类似资料:
  • 我正在尝试使用以下jsp代码将数据发布到支付网关网站: 我添加了。使用以下命令将cer文件转换为java密钥库: keytool-importcert-file“path/certFile.cer”-keystore“Java/jre7/lib/security/cacerts”-别名“alias” 我也试过这个: keytool-importcert-file“path/certFile.cer

  • 问题内容: 我正在使用ng-pattern来验证某些表单字段,并且正在使用ng-change来监视和处理任何更改,但是ng-change(或$ scope。$ watch)仅在form元素位于$有效状态!我对angular还是陌生的,所以我不知道如何解决这个问题,尽管我怀疑应该采用新的指令。 在ng-pattern仍然像以前一样设置表单元素状态的情况下,如何在$ invalid和$ valid表单

  • 我正在转换为节点JS的as is应用程序使用了Docusign SOAP API,能够发送包含1到多个文档的复合模板。这些文档中的每一个都可以关联到它们自己的文档模板,也可以不关联到docusign模板。 docusign不接受没有对模板ID的某种引用的复合模板吗?

  • The -beta.1 and stable dates are our solid release dates. 这些是我们排定的测试版发布日程,但我们往往比预定的发布更多测试版本。 我们致力于在这些日期发布版本,但可能因为诸如安全漏洞之类的理由调整这些排定的最后期限。 Take a look at the 5.0.0 Timeline blog post for info about publ

  • Special notes: -beta.1和稳定版日期是我们的具体的发布日期。 这些是我们排定的测试版发布日程,但我们往往比预定的发布更多测试版本。 我们致力于在这些日期发布版本,但可能因为诸如安全漏洞之类的理由调整这些排定的最后期限。 查看 5.0.0 版本时间线博客文章 以了解我们有关发布日期的信息。 从 Electron 6.0 以来,我们一直在针对每一个版本的 Chromium ,并且在

  • 我正在使用实时API中的标记订阅构建一个应用程序,并有一个与容量规划有关的问题。我们可能会有大量的用户同时向订阅的标签发帖,所以问题是API会多长时间向订阅处理endpoint发帖?例如,如果在一两秒钟内有100个用户发帖到#TestHashtag,我会收到100个帖子还是API将这些帖子作为一个更新进行批处理?一个相关的问题:是否有发送邮件的最大速率(例如,每秒一个或每十秒一个,等等)?