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

Postman中通过JWT认证获取DocuSign API访问令牌报错求助

解决Postman中生成DocuSign JWT令牌时KJUR is not defined错误

核心问题

错误根源是pm.sendRequest是异步操作,第一次运行脚本时,jsrsasign库还未下载完成,就执行了eval(pm.environment.get("jsrsasign")),导致KJUR对象未初始化。另外原脚本还存在参数传递错误的问题。

解决方案

方法一:手动预加载jsrsasign库

  • 直接打开jsrsasign库的CDN地址,复制全部代码内容
  • 在Postman环境变量中找到jsrsasign变量,将复制的代码粘贴进去并保存
  • 后续脚本运行时可直接调用已缓存的库,无需异步下载

方法二:修改脚本处理异步逻辑(推荐)

将JWT生成逻辑封装为函数,仅在库下载完成后执行:

// 模拟navigator和window对象适配库的运行环境
var navigator = {};
var window = {};

function generateJWT() {
    eval(pm.environment.get("jsrsasign"));

    var timestamp = new Date();
    var issuedAtTimeSeconds = timestamp / 1000;

    // 构造JWT头部和载荷
    var header = { "typ": "JWT", "alg": "RS256" };
    var payload = {
        "iss": "<integration key>",
        "sub": "<subscription guid>",
        "aud": "account-d.docusign.com",
        "iat": Math.ceil(issuedAtTimeSeconds),
        "exp": Math.ceil(issuedAtTimeSeconds) + 3600,
        "scope": "signature impersonation"
    };

    // RS256签名仅需私钥,无需传入公钥
    var assertion = KJUR.jws.JWS.sign("RS256", header, payload, pm.environment.get("privatekey"));

    // 设置请求头
    pm.request.headers.add({ key: "Authorization", value: "Bearer " + assertion });
}

// 判断库是否已缓存,未缓存则下载后生成JWT,已缓存直接生成
if (!pm.environment.get("jsrsasign")) {
    pm.sendRequest("https://kjur.github.io/jsrsasign/jsrsasign-all-min.js", function(err, res) {
        if (err) {
            console.log(err);
        } else {
            console.log("setting jsrsasign");
            pm.environment.set("jsrsasign", res.text());
            generateJWT();
        }
    });
} else {
    generateJWT();
}

额外注意事项

  • 私钥格式校验:确保环境变量中的私钥是完整PEM格式,包含-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----,无多余换行或空格
  • 参数修正:原脚本错误传入公钥到JWS.sign方法,RS256签名仅需私钥,公钥用于验证而非签名
  • 变量名修正:原脚本中打印的setting jrassign是拼写错误,需改为jsrsasign避免混淆

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:02:59