我正在尝试实现Docusign sdk,而RequestJWTUserToken方法会产生“意外的Pem类型”异常。我已经完全复制了docusign管理员页面上显示的私钥。
public string JWTAuthLogin()
{
ApiClient apiClient = Configuration.Default.ApiClient;
string oAuthBasePath = "account-d.docusign.com";
OAuth.OAuthToken tokenInfo = apiClient.RequestJWTUserToken(INTEGRATOR_KEY, USER_ID, oAuthBasePath, PRIVATE_KEY_BYTES, 1);
OAuth.UserInfo userInfo = apiClient.GetUserInfo(tokenInfo.access_token);
string accountId = string.Empty;
foreach (var item in userInfo.Accounts)
{
if (item.IsDefault == "true")
{
accountId = item.AccountId;
apiClient = new ApiClient(item.BaseUri + "/restapi");
break;
}
}
return accountId;
}
答案 0 :(得分:0)
在这里https://github.com/docusign/docusign-csharp-client/issues/168看到一些人如何解决此问题:
解决方案1:
var privateKeyStream = System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(testConfig.PrivateKeyFilename));
OAuth.OAuthToken tokenInfo = apiClient.RequestJWTUserToken(testConfig.clientId, testConfig.UserId, testConfig.OAuthBasePath, privateKeyStream, testConfig.ExpiresInHours);
解决方案2:
testConfig.PrivateKeyFilename = File.ReadAllText("./private.pem");