python - 请求生成的令牌时出现问题
问题描述
我正在使用 python 包装器进行 docusign docusign-esign
。
我正在尝试以几种方式使用令牌,希望其中一种能起作用。我浏览了 Docusign 文档和示例;我不确定在哪里可以寻求帮助。
发布片段时,我将链接到 docusign 的代码。所以不熟悉包装器的人也可以理解它。
我正在使用 2 种方法request_jwt_application_token
和request_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并进行了故障排除。
只是想知道是否有人对可能出现的问题有所了解。
解决方案
总结解决方案(参见问题的评论):
- 检查
Implicit Grant
是否未检查集成密钥。 - 将
user Id
被模拟的是API Username
来自管理工具的用户部分的值。不要将其与Account Id
DocuSign 网络工具右上角您的姓名附近可用的缩写形式混淆。 - 使用 SDK 的
request_jwt_user_token
方法通过 JWT 授权流程获取访问令牌。
推荐阅读
- c++ - C++ 中 sscanf_s 的替代方案
- android - Firebase 性能监控所需的正确版本的 Google Play 服务是什么?
- javascript - 比较两个数组并根据两个数组的索引添加新键
- java - 我想在 mac 上安装 Java JDK 8,但 .bash_profile 不会检测到 JAVA_HOME
- python - Python:列表超出索引
- javascript - Css z-index 被 ngx-swiper(Angular) 打破
- amazon-web-services - AWS Lambda 在 CloudWatch 指标中写入错误的输出
- r - 创建一个在组内和组间手动求平方和的 for 循环
- c - 如何在 C 中使用变量类型 char** 中的单个字符?
- reactjs - 数组或迭代器中的每个孩子都应该有一个唯一的“key”道具。不知道为什么