Возникла проблема с запросом на сгенерированный токен - PullRequest
0 голосов
/ 03 июля 2019

Я использую оболочку 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 и прошел поиск и устранение неисправностей.

Просто интересно, есть ли у кого-нибудь какое-то представление о том, в чем может быть проблема.

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

Вам нужно получить userId для пользователя, которого вы пытаетесь «олицетворять», если вы используете токен JWT.Вы можете найти этот идентификатор пользователя, войдя в песочницу.

1 голос
/ 03 июля 2019

Чтобы подвести итог решения (см. Комментарии с вопросом):

  1. Убедитесь, что Implicit Grant является не проверено на ключ интеграции.
  2. user Id, который будет олицетворяться, является значением API Username из раздела Users инструмента администрирования.Не путайте его с краткой формой Account Id, доступной рядом с вашим именем в верхнем правом углу веб-инструментов DocuSign.
  3. Используйте метод SDK 'request_jwt_user_token для получения токена доступа через JWTГрант потока.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...