Невозможно сгенерировать токен jwt, используя код DocuSign Python - PullRequest
0 голосов
/ 11 марта 2020

Я использую docusign для цифровой подписи, где мне нужно создать токен jwt. Для этого я использовал код из git repo https://github.com/docusign/docusign-python-client.

docusign версии 3.1.0, python версии 3.5 и 3.6 в режиме песочницы. получая следующее сообщение об ошибке (Вызвано NewConnectionError (': Не удалось установить sh новое соединение: [Errno -2] Имя или служба неизвестна',))

Я следовал запросу скручивания, используя следующий URL JSON Web Токен (JWT) Грант

получил токен приложения и при прохождении авторизации выдавал ошибку 401 (401 НЕАУРИЗОВАН) почтальону

претензия = {"iss": '4556e2f7-4a3d- 41f9-a0c3-18535a28ab2a ', "aud": "account-d.docusign.com", "iat": now, "exp": позже, "scope": "" .join (scopes)} token = jwt.encode (полезная нагрузка = заявка, ключ = pkey, алгоритм = 'RS256'). decode ("utf-8") Я получаю токен приложения, используя приведенный выше код, но когда я передаю все необходимые параметры, я получаю {"error": "invalid_grant", "error_description": "no_valid_keys_or_signatures"}, но когда я вставил свой токен jwt в jwt.io с моей публикацией c и приватный ключ говорит, что подпись подтверждена.

Я добавил ссылки на скриншоты, которые также могут помочь лучше понять проблему. https://ibb.co/2yKXNCW https://ibb.co/cFTk6R1 https://ibb.co/t3YMkr2

1 Ответ

0 голосов
/ 11 марта 2020

Вот вещи, которые вы должны обеспечить:

  1. У вас есть ключ интеграции (clientID), который настроен правильно.

  2. Вы есть закрытый ключ RSA. этот ключ был скопирован / вставлен точно так, как указано в вашем файле конфигурации. Новые строки должны быть сохранены

  3. Ваши URL-адреса соответствуют среде. Это означает, что вы используете account-d и demo.docusign. net для конечных точек песочницы env.

  4. Вам нужен userId, который является GUID для пользователя, который будет выдаваться за себя. Этот пользователь должен дать согласие на приложение. Вы должны убедиться, что вы передаете userId, а не accountId, и что это для той же учетной записи, которую вы будете использовать.

Если вы подтвердите все это и по-прежнему получите ошибку - я бы рассмотрим использование нашего примера кода для начала. Я не вижу кода в вашем вопросе, но наш пример кода должен быть хорошим началом.

...