【发布时间】:2019-03-25 01:52:57
【问题描述】:
有没有人遇到过此处主题中提到的 invalid_grant 错误,导致调用 ApiClient.RequestJWTUserToken 时出错?
这是我的电话。我已验证我的 DSConfig 字段有值。
private void UpdateToken()
{
ApiClient docusign_api = new ApiClient();
DSConfig cfg = new DSConfig();
const int jwtLifeSec = 10 * 60; // requested lifetime
//for the JWT is 10 min
List<string> scopes = new List<string>();
scopes.Add("signature");
// impersonation scope is implied due to use of JWT grant
OAuth.OAuthToken authToken = docusign_api.RequestJWTUserToken (DSConfig.ClientID,
DSConfig.ImpersonatedUserGuid,
DSConfig.AuthServer,
Encoding.UTF8.GetBytes(DSConfig.PrivateKey),
jwtLifeSec, scopes);
AccessToken = authToken.access_token;
if (Account == null)
Account = GetAccountInfo(authToken);
docusign_api = new ApiClient(Account.BaseUri + "/restapi");
expiresIn = DateTime.Now.Second + authToken.expires_in.Value;
}
public OAuth.OAuthToken RequestJWTUserToken(string clientId, string userId, string oauthBasePath, byte[] privateKeyBytes, int expiresInHours, List<string> scopes = null);
【问题讨论】:
-
您在 DSConfig.AuthServer 参数中传递了什么值?
-
我使用account-d.docusign.com作为AuthServer
-
通常情况下,当调用中的任何输入参数无效时,我们会得到 invalid_grant,您可以尝试使用JWT 之类的网站在代码外部创建令牌,负载看起来像
{ "iss": "IntegratorKey", "sub": "UserId", "iat": 1536700971, "exp": 1536704571, "aud": "account-d.docusign.com", "scope": "impersonation signature" } -
然后使用 PostMan 执行
POST调用https://account-d.docusign.com/oauth/token请求正文为grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=jwtassertioncreatedfromjwt.iowebsite和Content-Type将是application/x-www-form-urlencoded -
我更改了我的 AuthServer 参数并且不再获得 invalid_grant。我现在得到'consent_required'。我应该为 impersonatedUserGUID 使用 API 帐户用户吗?
标签: docusignapi