为 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 等),这也可能是您的问题。
如果有效 - 您可以使用它,或者您可以尝试查看您的代码中哪里做错了。
小伙伴们,你们好吗?
我想知道是否有人可以帮助我解决这个问题...
我正在尝试使用 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 等),这也可能是您的问题。
如果有效 - 您可以使用它,或者您可以尝试查看您的代码中哪里做错了。