【发布时间】:2021-05-27 19:02:34
【问题描述】:
我已将我的应用程序连接到 DocuSign 并创建了 JWT,收到了我的访问令牌,并成功请求了用户信息 (https://developers.docusign.com/docs/admin-api/admin101/application-auth/)。
连接此应用的主要目的是创建信封。
对用户信息的调用(如上面链接的文档中所示)的 URL:https://api-d.docusign.net/management/v2/organizations/{orgId}/users?email=email@doman.com。
对信封的调用(调用 get on this hits 'listStatusChanges' 并调用 POST 调用'create')使用以下 url:https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/envelopes。
但是,当我使用上面创建的访问令牌(包括“签名”范围)并使用我的“API 帐户 ID”作为信封端点上的 accountId 时,我收到以下错误:
{ "errorCode": "AUTHORIZATION_INVALID_TOKEN", "message": "提供的访问令牌已过期、已撤销或格式错误。系统应用程序的身份验证失败。" }
但是,如果我通过再次获取用户信息来测试我的 access_token,则在收到该错误后,它可以工作。因此,尽管请求签名范围访问,但我不能在签名端点上使用我的访问令牌。是否有另一个步骤可以让应用程序身份验证与签名端点一起工作?我是否使用了错误的帐户 ID(我的 orgId 和 userId 也不起作用)?
【问题讨论】:
-
您是否添加了“模拟”范围?这是 JWT 的强制要求
-
那么“模拟”对于 JWT 试图访问“签名”范围是强制性的吗?还是所有与管理无关的范围?
-
“模拟”需要使用 JWT 周期。 JWT 使您能够通过仅指定用户 ID 来进行 API 调用,而无需该用户登录。因此 - 您始终模拟用户。
-
好吧,你不需要模拟来使用 jwt 来获取 accesss_token 以在管理 api 上使用,因为你不模拟用户。您可以在我的帖子的第一个链接中看到 - “与 JWT 授权不同,应用程序身份验证直接向您的应用程序授予权限,而不是让您的应用程序模拟(代表)用户。这消除了登录用户的需要因为应用程序已经过身份验证。” .我尝试将“模拟”添加到范围,但在对“listStatusChanges”端点的 GET 请求中仍然收到相同的错误。
-
listStatusChanges 不在 Admin API 中,但在 eSignature API 中。请注意,要添加范围,您需要再次请求同意,所以不确定您是否这样做了。
标签: docusignapi