我们要使用后端服务器对docusign api进行身份验证(在获得管理员同意的情况下),以便创建信封并为用户准备收件人视图以供用户签署文档,根据文档,JSON Web令牌(JWT)Grant似乎要走的路。
根据文档https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonwebtoken,我创建了一个具有以下负载的JWT:
{
"iss": "INTEGRATOR_KEY",
"sub": "USER_ID",
"iat": 1559295213,
"exp": 1559298213,
"aud": "account-d.docusign.com",
"scope": "signature impersonation"
}
JWT是在jwt.io上构建的,格式正确,我随请求发送了编码版本。我还遵循了从有效载荷的范围内获得许可并向应用程序添加权限的步骤:“签名模拟”。
我还尝试确保以iat
为例,并且exp
距iat
一小时后不超过一个小时。
在集成到我们的应用之前,我是通过邮递员发出请求的:
POST https://account-d.docusign.com/oauth/token
标题:
Content-Type:application/x-www-form-urlencoded
身体:
grant_type: urn:ietf:params:oauth:grant-type:jwt-bearer
assertion: ENCODED_JWT_FROM_ABOVE
我没有看到文档说明以外的任何内容,但是不断收到相同的错误:
{
"error": "invalid_grant"
}
我检查了与该问题有关的其他问题,但没有找到对我有用的任何东西,也为JWT拨款,其中一些是请求问题,即headers
,其中一些是代码同时将其集成到应用中。想要共享整个流程,以确保对于我而言,我是否做得正确。
编辑:附加说明:当我进入docusign管理面板时,在My Apps / Integration Keys
下,该应用似乎未运行,这只是根据灰色状态指示器(当我为用户看到的)的一种假设。它是绿色的):
我不确定演示应用程序或试用版帐户是否有某些限制,是否需要任何其他配置,因此不胜感激。谢谢!
答案 0 :(得分:0)
您是否用私钥加密了JWT?
对于sub
,您是否使用了用户的guid(必填)而不是用户的电子邮件(不起作用)?
您尝试使用使用JWT Grant身份验证的eg-01 series of code examples之一吗?
查看Drew's answer以获得其他建议。