首页 > 解决方案 > 请求生成的令牌时出现问题

问题描述

我正在使用 python 包装器进行 docusign docusign-esign

我正在尝试以几种方式使用令牌,希望其中一种能起作用。我浏览了 Docusign 文档和示例;我不确定在哪里可以寻求帮助。

发布片段时,我将链接到 docusign 的代码。所以不熟悉包装器的人也可以理解它。

我正在使用 2 种方法request_jwt_application_tokenrequest_jwt_user_token.

    results = api_client.request_jwt_application_token(
        DOCUSIGN_INTEGRATOR_KEY,
        DOCUSIGN_OAUTH_BASE_URL,
        private_key_bytes,
        TOKEN_EXPIRATION_IN_SECONDS,
        scopes=(OAuth.SCOPE_SIGNATURE, OAuth.SCOPE_IMPERSONATION)
    )
results:

{'access_token': 'eyJ0eXAiOiJNVCIsImFsZyI6IlJTMjU2Iiwia2lkIjoiNjgxODVmZjEtNGU1MS00Y2U5LWFmMWMtNjg5ODEyMjAzMzE3In0.AQgAAAABAAsADQAkAAAAYTNkZTI3MjMtMmUzYS00ZWUxLWE1NzktY2FjNjA1Z
DE3NDc5BwCAK89-QP_WSAgAgGvyjIP_1kgLAB8AAABodHRwczovL2FjY291bnQtZC5kb2N1c2lnbi5jb20vDAAkAAAAYTNkZTI3MjMtMmUzYS00ZWUxLWE1NzktY2FjNjA1ZDE3NDc5GAACAAAABQAAAB0AAAASAAEAAAAGAAAAand0
X2Jy.FK9nETujvSqQPyvE0LQZVuB-LrBHWUcmgFaqhGfBm9Wk39SlD41OohLRYGrM6SzXohjorSsDzRB9rHF9d9qmdKaj2ZXNGDBsTE3eRUGeYp-0cWRN3qYNQmgfdsqOTAslNiXQdNfgxsBFjaQtKag2f51MZ_xdvMW4iVjB1WMXFP
vf6BaEy5BJWzpdmd0JE5-8UvDhFV2wxLAGSc1d2JaxJbcFMnBt3-xQMmYtCgyJ5SAh9LxU_rAIt7AkoalPHILQjieAh4kupFeQiLJHSjX7o37K6DngG9I0iHXWspW_rMNOH-_70Um_iSPPNI_hnpJZKB3yDMkiuYcXZKFLEf1L7g',
 'data': None,
 'expires_in': '3600',
 'refresh_token': None,
 'scope': None,
 'token_type': 'Application'}

这是我在获取令牌时能够获得的最接近的值,但是,何时使用令牌获取用户信息api_client.get_user_info(token)

我明白了

ApiException: (401)
Reason: Unauthorized
HTTP response headers: HTTPHeaderDict({'X-DocuSign-Node': 'SE1DFE2', 'Content-Length': '87', 'Expires': '-1', 'Vary': 'Accept-Encoding', 'X-DocuSign-TraceToken': 'e8af89bc-c18
4-45d7-8f9c-a7faff443006', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Date': 'Tue, 02 Jul 2019 22:56:50 GMT', 'Content-Type': 'application/json; charset=utf-8'})
HTTP response body: {"error":"internal_server_error","reference_id":"e8af89bc-c184-45d7-8f9c-a7faff443006"}

我为此查找了一些解决方案,但没有成功。

然后我尝试使用

    results = api_client.request_jwt_user_token(
        DOCUSIGN_INTEGRATOR_KEY,
        DOCUSIGN_USERID,
        DOCUSIGN_OAUTH_BASE_URL,
        private_key_bytes,
        TOKEN_EXPIRATION_IN_SECONDS,
        scopes=(OAuth.SCOPE_SIGNATURE, OAuth.SCOPE_IMPERSONATION)
    )

这根本不起作用。获取令牌失败。

results:

Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'X-DocuSign-Node': 'DA1DFE4', 'Content-Length': '27', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload', 'X-Co
ntent-Type-Options': 'nosniff', 'Content-Type': 'application/json; charset=utf-8', 'Expires': '-1', 'Vary': 'Accept-Encoding', 'X-XSS-Protection': '1; mode=block; report=/clie
nt-errors/xss', 'X-DocuSign-TraceToken': 'b5d728bc-a442-4b35-bdb3-3026e64df334', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Date': 'Tue, 02 Jul 2019 23:12:49 GMT', 'X
-Frame-Options': 'SAMEORIGIN', 'X-AspNetMvc-Version': '5.2'})
HTTP response body: {"error":"invalid_request"}

我已经查看了https://developers.docusign.com/esign-rest-api/guides/authentication/oauth2-jsonwebtoken并进行了故障排除。

只是想知道是否有人对可能出现的问题有所了解。

标签: pythondocusignapi

解决方案


总结解决方案(参见问题的评论):

  1. 检查Implicit Grant是否检查集成密钥。
  2. user Id被模拟的是API Username来自管理工具的用户部分的值。不要将其与Account IdDocuSign 网络工具右上角您的姓名附近可用的缩写形式混淆。
  3. 使用 SDK 的request_jwt_user_token方法通过 JWT 授权流程获取访问令牌。

推荐阅读