邮递员在预请求脚本中访问保管库值

问题描述 投票:0回答:1

我正在使用 Postman v11.14.1

我想构建一个由我们团队共享的邮递员工作区,其中包含对某些 API 的请求。

我已将所有凭据放入 Postman 保管库,以避免将它们存储在 Postman 云中。例如DEV_SYS1_CLIENT_ID、STAGE_SYS1_CLIENT_ID等

然后我定义了我们的环境:Dev、Stage 等。然后我定义了环境变量。例如在开发中:SYS1_CLIENT_ID={{vault:DEV_SYS1_CLIENT_ID}}。对于阶段:SYS1_CLIENT_ID={{vault:STAGE_SYS1_CLIENT_ID}}。

然后我有一个 SOAP API 调用。身份验证数据是 SOAP 请求正文的一部分。

    <soap:Header>
        <auth>
         <clientId>{{SYS1_CLIENT_ID}}</clientId>
         <signature algorithm="HMAC-SHA256">{{signature}}</signature>
       </auth>
       ...

为了计算签名值,我为 Postman 集合创建了一个预请求脚本。它应该使用环境变量来构建签名值。 我使用以下方法来获取环境变量值:

pm.environment.get("SYS1_CLIENT_ID")

问题在于代码结果是

{{vault:DEV_SYS1_CLIENT_ID}}
而不是金库中的实际值。我可以在那里获得实际值而不是参考值吗?

是否有另一种方法可以将 Vault 数据构建的值注入到请求正文中?我知道我可以将所有凭据直接设置到环境变量中。但我认为这不是管理此类数据的正确方法。

postman postman-pre-request-script
1个回答
0
投票

您需要首先启用在脚本沙箱中使用保管库变量的访问权限,默认情况下此功能处于关闭状态。

https://learning.postman.com/docs/tests-and-scripts/write-scripts/postman-sandbox-api-reference/#using-vault-secrets-in-scripts

然后您可以在脚本中使用

pm.vault.get()

© www.soinside.com 2019 - 2024. All rights reserved.