【发布时间】:2019-01-29 11:49:57
【问题描述】:
我正在尝试运行 DocuSign https://github.com/docusign/eg-01-node-jwt 示例并收到 PEM 错误 - PEM_read_bio:bad end line
我最初有一个 Start line 错误,由于我错过了 -----BEGIN RSA PRIVATE KEY----- 和 END Key cmets,因此该错误已得到纠正,因此这表明私钥存在另一个问题。我尝试了各种不同的引号并更改了密钥的格式,但仍然出现错误
谷歌搜索错误给了我关于格式或破折号数量的答案,但这一切似乎都是正确的
自述文件说您可以使用环境变量,但这些似乎不接受这么长的字符串 - 如果我 cur 并粘贴,我只会得到第一行的开头
我正在使用示例中的 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-----`
(删除了中间部分的key)
所以当我运行 start 我得到这个错误
c:\Users..\eg-01-node-jwt-master>npm start
docusign_eg01_oauth_jwt_authentication@1.0.0 启动 c:\Users..\eg-01-node-jwt-master 节点索引.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)
(node:14568) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:2) (节点:14568)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。
【问题讨论】:
-
您需要将密钥重新格式化为一行,我在下面发布了答案。
标签: node.js docusignapi