为 DocuSign 创建 JWT

Creating JWT for DocuSign

小伙伴们,你们好吗?

我想知道是否有人可以帮助我解决这个问题...

我正在尝试使用 JWT 将我的 API 与 DocuSign 集成。我从 DocuSign API 收到以下错误:

data: {
      error: 'invalid_grant',
      error_description: 'no_valid_keys_or_signatures'
    }

根据 JWT 正确时发生的文档,但有些说法不正确。

这是文档 link:https://developers.docusign.com/platform/auth/jwt/jwt-get-token

我有点担心,因为我所做的声明与文档要求的完全一样。

连接授权已经完成。

这是我用来创建 JWT 的数据:

 const data = {
    iss: req.body.iss,
    sub: req.body.sub,
    name: req.body.name,
    iat: timeStamp,
    exp: timeStamp + 60 * 60 * 1000,
    aud: req.body.aud,
    scope: req.body.scope,
  };

请求是:

{
    "iss": "INTEGRATION_KEY",
    "sub": "ACCOUNT_ID",
    "name": "Ruben Acevedo",
    "aud": "account-d.docusign.com",
    "scope": "signature impersonation"
}

(密钥值已更改以保护隐私)

我正在这样创建令牌:

const createToken = (data) => {
  const privateKey = fs.readFileSync(key);

  const token = jwt.sign(data, privateKey, {
    algorithm: "RS256",
  });

  return token;
};

和对 docusign api 的 post 请求是这样的:

axios({
    method: "post",
    url: "https://account-d.docusign.com/oauth/token",
    data: `grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=${token}`,
  })
    .then((response) => console.log(response))
    .catch((e) => console.log(e));
});

你们能帮助新手交付他的项目吗?哈哈

先谢谢大家!!

Ruben,我们做得很好,谢谢你的邀请。 我建议您尝试花 2-3 分钟为 Node.js 生成 DocuSign quickstart 并查看那里的 JWT 选项是否适合您(您必须首先 运行 使用 Auth Code Grant 或更改配置文件中的 quickstart="true" 以使用 JWT)。

这将为您提供一个使用 Node SDK 的工作版本。它还会为您设置所有内容(RSA 密钥、IK 等),这也可能是您的问题。

如果有效 - 您可以使用它,或者您可以尝试查看您的代码中哪里做错了。