我有一个docusign-sandbox帐户。我正在尝试将docusign与我的应用程序集成,并在Java中使用JWT Grant进行身份验证。我从https://github.com/docusign/eg-01-java-jwt
得到了一个示例代码,它可以完美运行一个小时,然后API开始失败。
有什么想法可以解决这个问题吗?
我遇到以下错误
我已经尝试将令牌的到期时间从1小时更改为其他较小的值(5分钟,30分钟)。即使这样,一个小时后API也会开始完全失效。
https://github.com/docusign/eg-01-java-jwt
错误消息
{"timestamp":1560750467288,"status":500,"error":"Internal Server Error","message":"Error while requesting server, received a non successful HTTP code 401 with response Body: '{\r\n \"errorCode\": \"USER_AUTHENTICATION_FAILED\",\r\n \"message\": \"One or both of Username and Password are invalid. Invalid access token\"\r\n}'","path":"{path}"}
答案 0 :(得分:0)
jwt授予返回仅在1小时内有效的访问令牌。之后,您需要再花一个小时来生成一个新令牌。
在每个API调用之前调用示例的checkToken方法。它应该根据需要创建一个新的访问令牌。
已添加
您需要调试以查看发生了什么。是50分钟后checkToken方法获取新的访问令牌(应该使用10分钟的缓冲时间)。是否正在使用新的访问令牌?
答案 1 :(得分:0)
找到解决问题的方法。
正在生成访问令牌,但由于某种原因,它没有更新ApiClient对象中的令牌,而仅使用旧令牌。 因此,现在每次令牌过期时,我只是创建一个新的ApiClient对象,而不是用新令牌替换旧令牌。