我已经通过https://jwt.io为DocuSign生成了JWT令牌。签名已验证。 现在要获取访问令牌,我正在Windows命令行工具上的Curl中使用以下命令。引用文档https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonwebtoken。我收到“无效的授予”。我的请求出了什么问题?我知道我的令牌是正确,因为令牌可以验证签名。
curl --data "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=YOUR_JSON_WEB_TOKEN" --request POST https://account-d.docusign.com/oauth/token
答案 0 :(得分:1)
55
是几个错误汇总在一起的公开版本。如果您已达到排除故障的极限,建议您使用DocuSign Support打开一个案例,并提供您的模拟帐户ID,UserID,集成商密钥以及断言失败的x-DocuSign-TraceToken的值。您的断言的纯文本版本也将有所帮助。
这里有几件事要检查:
invalid_grant
的值-必须精确 aud
(用于演示)或account-d.docusign.com
(用于生产)。包含https://或其他任何值都将失败。
account.docusign.com
值-在适当的环境中必须是活动的用户ID(GUID格式)。
sub
值-必须是有效的客户ID
用于签名的私钥-必须在正确的环境中与客户端ID相关联。如果您使用生产中生成的密钥,但断言指向iss
,则它将失败。在某些情况下,新生成的密钥对在帐户服务器中生效可能需要几分钟,因此,如果您刚刚生成了该密钥,请稍等片刻,然后重试。
已使用的时间戳记-您的account-d.docusign.com
值一定不能过去,如果您使用的是exp
值,则必须是过去的值。确认计算机的时钟已正确配置-如果时钟严重关闭,则应用程序可能因此而生成无效的断言。
答案 1 :(得分:0)
专家提示是使用一个库来生成JWT并将其转换为访问令牌。
有关多种语言的代码示例,请参见JWT示例。这些示例使用来自DocuSign SDK的JWT方法或较低级别的JWT库。
有关安装和配置说明,请参见存储库的自述文件。