我可以在Postman中使用哪个JsonWebToken库

8oomwypt  于 2022-11-07  发布在  Postman
关注(0)|答案(1)|浏览(295)

我在Postman中有以下预请求脚本,我尝试使用它来获取RS 512签名令牌。我尝试使用crypto-js,但从我所读到的内容来看,它仅是对称密钥,因此不支持RS 512算法

pm.sendRequest("https://cdnjs.cloudflare.com/ajax/libs/jsrsasign/8.0.20/jsrsasign-all-min.js", (error, response) => {
  if (error || response.code !== 200) {
      pm.expect.fail('Could not load external library');
  }

  var text = response.text();

  eval(text);

  var pvtKey = pm.environment.get('private-secret-key') || ''

  var jwtSecret = '-----BEGIN RSA PRIVATE KEY-----\n'
  jwtSecret += pvtKey + '\n'
  jwtSecret += '-----END RSA PRIVATE KEY-----';

  var currentTimestamp = Math.floor((new Date()).getTime() / 1000);

  var jwtPostPayload = {
      'iat': currentTimestamp,
      "name": "John Doe"
  };

  var token = sign(jwtPostPayload, jwtSecret, { algorithm: 'RS512' })
  pm.environment.set('jwt-signed', token);
});

我现在的问题是,我导入的库似乎都不起作用。我已经尝试了所有这些https://jwt.io/libraries?language=JavaScript,我得到的不是module is not defined就是window is not defined或者navigator is not defined。我不介意复制缩小的js,做一些小的修改,并将其存储为全局变量,我只是不知道要做哪些修改。
有人能给我指出一个像这样工作的库的方向吗?或者告诉我需要做什么修改才能解决窗口或模块错误?
谢谢你

uqzxnwby

uqzxnwby1#

我不知道这是否有帮助,但我一直在使用列表https://github.com/kjur/jsrsasign/blob/master/jsrsasign-all-min.js中的此库
首先,我得到了那些关于窗口和导航器的错误,但他们被修复只是在我的规定中声明了一些,像这样:

const navigator = {}; //fake a navigator object for the lib
const window = {}; //fake a window object for the lib
eval(pm.globals.get('jsrsasign-js')); //import javascript jsrsasign
const signedRO = KJUR.jws.JWS.sign("RS256", header, payload, jwk);

这对我产生一个RS256 jwt工作。
此致

相关问题