Docusignapi 使用服务身份验证时出现错误消息无效授权
试图用代码交换访问令牌时出错。声明授予无效。我不知道我做错了什么 代码如下:Docusignapi 使用服务身份验证时出现错误消息无效授权,docusignapi,Docusignapi,试图用代码交换访问令牌时出错。声明授予无效。我不知道我做错了什么 代码如下: var integratorId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; var secretKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; var basic = base64.encode(integratorId + ':' + secretKey); console.log(basic); var JWTheader
var integratorId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
var secretKey = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
var basic = base64.encode(integratorId + ':' + secretKey);
console.log(basic);
var JWTheader = {"typ":"JWT", "alg":"RS256"};
var JWTbody = {
"iss":"bfcb8406-4994-4715-8f6d-112f5670db2d",
"sub":"832f391a-a3f7-4c29-b8f0-3226c06accd2",
"aud": "account-d.docusign.com",
"scope": "signature"
};
var unSignedToken = base64.encode(JWTheader) + '.' + base64.encode(JWTbody);
var cert = fs.readFileSync('/home/toplevelstaging/TopLevelAPI/routes/fs_node/RSAkey.pem');
var token = jwt.sign({unSignedToken, iat:Math.floor(Date.now()/100),exp:Math.floor(Date.now()/1000)+60}, cert, {algorithm:'RS256'});
var baseUrl = 'https://demo.docusign.net/restapi/v2/accounts/3465212';
var oauth = 'https://account-d.docusign.com/oauth/token';
var tokenUrl = 'grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion='+token;
request({
headers:{"Content-Type":"application/x-www-form-urlencoded","Authorization":"Basic "+basic},
url:oauth,
json: true,
method: "POST",
data: tokenUrl,
},function(err,response,body){
console.log(response);
}
);
以下是我收到的错误:
body: { error: 'invalid_grant' } }
您正在使用哪个JWT库 JWT库应该负责为您创建JWT,您不应该处理令牌部分的base64编码 从您的示例中可以看出,您正在手动滚动JWT的部分,然后使用库进行签名
寻找一个更好的图书馆,为你处理一切。有关更多提示,请参阅我的和配方。integratorId和SecretKey应该是私有的,只有您可以访问它们。它们不应该像这样发布在公共论坛上。我正在为node.js使用jsonwebtoken,我取消了base64编码,但仍然得到相同的错误。