【发布时间】: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