伙计,你好吗?
我想知道是否有人可以帮助我解决这个问题...
我正在尝试使用JWT将API与DocuSign集成。我从DocuSign API收到以下错误:
data: {
error: 'invalid_grant',
error_description: 'no_valid_keys_or_signatures'
}
根据JWT正确但发生的某些声明不正确的文档,
这是文档链接: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的发布请求是这样的:
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));
});
你们可以帮助新手交付他的项目吗?哈哈
提前谢谢大家!
答案 0 :(得分:1)
鲁本,我们做得很好,感谢您的提问。 我建议您尝试花费2-3分钟的时间为Node.js生成DocuSign quickstart,并查看其中的JWT选项是否对您有用(您必须先使用Auth Code Grant运行它,或更改quickstart =“ true “”(在配置文件中使用JWT)。
这将为您提供使用Node SDK的工作版本。它还将为您设置所有内容(RSA密钥,IK等),这也可能是您遇到的问题。
如果可行,您可以使用它,也可以尝试查看代码中做错了什么。