我目前正在使用一个承载令牌,我需要从中获取一些数据来继续用户旅程。我发现了下面的代码,它为我做解码
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沙盒脚本来解码base64编码的有效载荷,当解码时,有效载荷看起来有点像这样:
{
"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
}
通常,我会参考我想要的有效载荷主体项目(例如子(,如下所示:
pm.environment.set('sub', parsed.sub);
然而,我想引用";http://mytestsite.uk/id"我不知道该怎么做。
parsed.http://mytestsite.uk/id
以上导致脚本出错,我无法对其进行编码,因为这并不能删除点,我显然无法将其作为字符串传递——我想我不清楚如何正确传递此名称以正确引用JSON对象。
您应该能够通过以下方式引用它:
pm.environment.set('id', parsed['http://mytestsite.uk/id'])