Пример Docusign Node.JS JWT - PEM_read_bio: плохая конечная строка - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь запустить пример DocuSign https://github.com/docusign/eg-01-node-jwt и получаю ошибку PEM - PEM_read_bio: неверная конечная строка

У меня изначально была ошибка Start line, которая была исправлена, поскольку я пропустил----- BEGIN RSA PRIVATE KEY ----- и END Ключевые комментарии, так что это указывает на еще одну проблему с закрытым ключом.Я пробовал разные кавычки и изменял форматирование ключа, но все равно получаю ошибку

Поиск в сообщении об ошибке дает мне ответ относительно формата или количества тире, но все это кажется правильным

В файле readme написано, что вы можете использовать переменную окружения, но они, похоже, не принимают такую ​​длинную строку - если я рисую и вставляю, я получаю только начало первой строки

Я использую dsconfig.js из примера

  /** The private key */
    /** Enter the key as a multiline string value. No leading spaces! */
  , privateKey: env.DS_PRIVATE_KEY ||   `-----BEGIN RSA PRIVATE KEY-----
  MIIEogIBAAKCAQEAgXxpEI/it1KvSFTgduXIAbBBqnwTZXasyt4AaBHkuw+VFyhk
………..
  10kBAoGASgk77R0K87kUOvqLTDYQydV6pMyenLuGt+KsqsaiHwxO8/x53JEJn710
  uYJku2KMSAKndzlPnYfDw9yFN9BxENvzKzL4oRa8Lbfq+ziHFlfRiNvO1ebNURV5
  YNdbhBO4UfTx8808l84bNbL5e+2/w4O9FmoeUD1pO0H1RQCtDiI=
  -----END RSA PRIVATE KEY-----`

(удалена средняя часть ключа)

Поэтому при запуске я получаю эту ошибку

c: \ Users .. \eg-01-node-jwt-master> npm start

docusign_eg01_oauth_jwt_authentication@1.0.0 start c: \ Users .. \ eg-01-node-jwt-master узел index.js

Отправьте конверт с тремя документами.Эта операция занимает около 15 секунд ...

checkToken: Starting up--need an accessToken
(node:14568) UnhandledPromiseRejectionWarning: Error: error:0906D066:PEM routines:PEM_read_bio:bad end line
at Sign.sign (internal/crypto/sig.js:80:26)
at Object.sign (c:\Users\..\eg-01-node-jwt-master\node_modules\jwa\index.js:76:45)
at Object.jwsSign [as sign] (c:\Users\..\eg-01-node-jwt-master\node_modules\jws\lib\sign-stream.js:32:24)
at Object.module.exports [as sign] (c:\Users\..\eg-01-node-jwt-master\node_modules\jsonwebtoken\sign.js:189:16)
at generateAndSignJWTAssertion (c:\Users\..\eg-01-node-jwt-master\node_modules\docusign-esign\src\ApiClient.js:62:16)
at exports.requestJWTUserToken (c:\Users\..\eg-01-node-jwt-master\node_modules\docusign-esign\src\ApiClient.js:881:19)
at Object._getToken [as getToken] (c:\Users\..\eg-01-node-jwt-master\lib\dsJwtAuth.js:94:31)
at Object._checkToken [as checkToken] (c:\Users..\eg-01-node-jwt-master\lib\dsJwtAuth.js:65:35)
at Object._sendEnvelope [as sendEnvelope] (c:\Users..\eg-01-node-jwt-master\lib\sendEnvelope.js:62:19)
at main (c:\Users\..\eg-01-node-jwt-master\index.js:40:36)

(узел: 14568) UnhandledPromiseRejectionWarning: необработанное отклонение обещания.Эта ошибка возникла либо из-за того, что внутри асинхронной функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch ().(идентификатор отклонения: 2) (узел: 14568) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания устарело.В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом выхода.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Хммм, извините, у вас возникли проблемы.

Ответ Эргина также может сработать.Лично мне не нужно было удалять новые строки на Mac.Если вы используете Windows, возможно, это другое.

Элементы для проверки:

  • узел - версия должна возвращать v8.11 или более позднюю версию

  • Убедитесь, что выиспользуя ваш закрытый ключ из инструмента администратора, а не открытый ключ.

  • Убедитесь, что вы используете обратные клавиши - `для окружения закрытого ключа RSA.

  • Убедитесь, что переменная окружения DS_PRIVATE_KEY не установлена.Или, может быть, проще, удалите его из строки.

  • Убедитесь, что ваш client_id (ключ интеграции) правильный.

например

, privateKey: `-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAkbz3bi31zrH2ry4p8S4ncPoMdkUyu+MG46m9BalOKzWNNAvW
1LVs5ftlXxzA6V0m6nx895w8S761/qZ8xtAAl99DezRn/3CueeBUyw+tvlmEBu1C
IJK69GVoSInIKf6qyeL1WxxFV5R17QtIiQeT2yCa/fitCaxwxkNlYpP4wd5tcG0W
PEHgznlGh/vUboCuA4tQOcKytxFfKG4F+jM/g4GH9z46KZOow3Hb6g==
-----END RSA PRIVATE KEY-----`

Строки были пропущены.

Для отладки установите точку останова в строке 93 из https://github.com/docusign/eg-01-node-jwt/blob/master/lib/dsJwtAuth.js

, а затем оцените выражение dsConfig.privateKey

0 голосов
/ 29 января 2019

Это ключевая проблема форматирования, которую необходимо решить:

  1. Откройте ваш ключ в вашем любимом текстовом редакторе (мне нравится Sublime ).
  2. Выбратьполное значение ключа.
  3. Сделайте регулярное выражение для замены любой последовательности \n в вашем ключе на \\n
  4. Используйте только что измененный ключ в вашем запросе, и он должен работать.

Примечание: Если вы используете Sublime, убедитесь, что у вас включена опция Regular Expression, когда вы выполняете поиск / замену, иначе она не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...