Docusignapi C#DocuSignJWT SDK-无效的授权

Docusignapi C#DocuSignJWT SDK-无效的授权,docusignapi,jwt-auth,Docusignapi,Jwt Auth,当我尝试使用DocuSign sdk生成JWT用户令牌时,我一直收到一个“invalid_grant”错误,我不知道我在这里哪里出错了 public OAuthToken GetJwtToken(string userId) { try { var client = new ApiClient(); var authToken = client.RequestJWTUserToken

当我尝试使用DocuSign sdk生成JWT用户令牌时,我一直收到一个“invalid_grant”错误,我不知道我在这里哪里出错了

public OAuthToken GetJwtToken(string userId)
    {
        try
        {
            var client = new ApiClient();

            var authToken = client.RequestJWTUserToken
            (
                IntegrationKey,
                userId,
                BaseUrl,
                Encoding.UTF8.GetBytes(PrivateKey),
                1,
                new List<string> { "signature", "impersonation" }
            );

            return authToken;
        }
        catch (ApiException e)
        {
            var msg = e.Message;
        }

        return null;
    }
我查看了我能找到的每一个线程,复制了这个线程的示例代码,并对我的所有值进行了四倍检查。我不知道为什么这行不通

编辑:我粘贴了代码在请求中发送到的断言字符串,我能够验证解码的数据是否正确,并且在粘贴到我的公钥和私钥后验证了签名。在检查了所有这些之后,我不确定为什么这不起作用

编辑2:这是我存储RSA私钥的方式:

<add key="DocuSign:PrivateKey" value="-----BEGIN RSA PRIVATE KEY-----\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\n-----END RSA PRIVATE KEY-----" />

最后,我不得不删除我应用程序的RSA密钥对,并生成一个新的密钥对。新钥匙起作用了。我不知道为什么旧版本没有,但这至少解决了问题。

您是如何在沙箱中的DocuSign Admin中设置集成密钥的?RSA私钥必须以与所有行结束时完全相同的方式存储和提供的。@InbarGazit我没有设置它;它是我创建应用程序时制作的。我只是复制了它为RSA私钥生成的值,我只是删除了字符串中的新行,并将它们替换为\r\nok,我的意思是生成RSA密钥的位置相同。您还需要向用户授予许可。你做了那部分吗?我完成了授权码授予过程,得到了用户的同意,并使用该帐户id作为上面的用户id字符串。我的应用程序设置为使用授权码授权,所以我不需要手动授权访问,对吗?与作为同意流一部分的重定向uri的链接应该负责这一点。
object result = pemReader.ReadObject();
<add key="DocuSign:PrivateKey" value="-----BEGIN RSA PRIVATE KEY-----\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\nxxxxxxx\r\n-----END RSA PRIVATE KEY-----" />
public static string PrivateKey { get { return ConfigurationManager.AppSettings["DocuSign:PrivateKey"].Replace("\\r\\n", "\r\n"); } }