【问题标题】:Postman scripting: how to refrence a json node with web address for a name邮递员脚本:如何引用带有网址的 json 节点作为名称
【发布时间】:2021-06-10 09:58:54
【问题描述】:

我目前正在使用不记名令牌,我需要从中获取一些数据以继续用户旅程。我发现以下代码为我进行解码

var jsonData = JSON.parse(responseBody);
const payload = jsonData.Result.AccessToken.split('.')[1];  // Assuming the JWT is in id_token
const parsed = JSON.parse(atob(payload));

它使用 atob 沙盒脚本来解码 base 64 编码的 payload,解码后的 payload 看起来有点像这样:

{
  "http://mytestsite.uk/roles": [
    "user"
  ],
  "http://mytestsite.uk/id": "8d2c3de9-4fa2-a58e-68109d977",
  "http://mytestsite.uk/email": "tst3@mytestsite.uk",
  "sub": "500b416c8942bb0069b98a3c",
  "aud": "api.tst.mytestsite.uk",
  "iat": 1615544685,
  "exp": 1615631085
}

通常,我会像这样引用我想要的有效负载主体项(例如 sub):

pm.environment.set('sub', parsed.sub); 

但是,我想引用“http://mytestsite.uk/id”,不知道该怎么做。

parsed.http://mytestsite.uk/id

以上导致脚本出错,我无法对其进行编码,因为这不会删除点,我显然不能将它作为字符串传递 - 我想我不清楚如何正确传递这个正确引用 JSON 对象的名称。

【问题讨论】:

    标签: javascript json jwt postman


    【解决方案1】:

    你应该可以这样引用它:

    pm.environment.set('id', parsed['http://mytestsite.uk/id'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 2017-02-21
      • 2019-04-09
      相关资源
      最近更新 更多