You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DocuSign生产环境集成遇JWT错误:invalid_grant/no_valid_keys_or_signatures

解决DocuSign生产环境JWT令牌请求报错:invalid_grant(no_valid_keys_or_signatures)

为什么私钥在生产环境无效?

  • DocuSign生产环境与沙箱(演示)环境完全独立,沙箱集成密钥对应的私钥无法直接复用在生产环境的集成密钥上,生产环境需要为专属集成密钥单独生成密钥对。
  • 公钥与私钥不匹配:上传到生产环境集成密钥的公钥,和本地代码使用的私钥并非同一对生成。
  • 私钥格式错误:比如PEM文件缺少-----BEGIN RSA PRIVATE KEY-----或-----END RSA PRIVATE KEY-----标记,或文件内容存在多余空白、换行错误。
  • 集成密钥配置问题:生产环境的集成密钥未开启JWT授权,或未关联正确的生产用户ID。

修复步骤

  • 重新生成生产环境密钥对
    1. 登录DocuSign生产环境开发者中心,找到你的生产集成密钥。
    2. 进入「密钥」选项卡,点击「添加RSA密钥」,系统会自动生成新的公钥和私钥,下载私钥文件并妥善保存(注意:私钥仅能下载一次)。
  • 校验密钥匹配性
    使用OpenSSL命令验证本地私钥与后台公钥是否一致:
    openssl rsa -in 你的生产私钥文件.pem -pubout -out 生成的公钥.pem
    
    将生成的公钥内容与DocuSign后台集成密钥下的公钥对比,确保完全一致。
  • 检查代码配置
    确认Node.js代码中:
    • 加载的是生产环境的私钥文件,路径无误;
    • iss参数为生产集成密钥ID;
    • sub参数为生产环境的用户ID;
    • aud参数设置为account.docusign.com(生产环境的受众);
    • Account Base URI使用https://account.docusign.com。
  • 确认集成密钥权限
    1. 确保生产集成密钥已开启JWT授权;
    2. 关联的生产用户ID正确,且该用户已对集成密钥完成授权(首次使用可通过管理员预授权,或让用户手动完成授权流程)。
  • 验证JWT签名
    用jsonwebtoken库的verify方法本地校验生成的JWT:
    const jwt = require('jsonwebtoken');
    const fs = require('fs');
    const publicKey = fs.readFileSync('生产公钥文件.pem', 'utf8');
    const token = '你生成的JWT令牌';
    jwt.verify(token, publicKey, (err, decoded) => {
      if (err) console.log(err);
      else console.log(decoded);
    });
    
    若校验失败,说明私钥或签名过程存在问题。

内容的提问来源于stack exchange,提问作者Charlin Randriamanaja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:30:12