当前位置: 首页 > 知识库问答 >
问题:

如何在邮递员中设置环境变量的基本授权?

卢涵畅
2023-03-14

我想使用环境变量在Postman中设置基本授权。因为我对不同的API调用有不同的授权用户名和密码。

我的邮递员设置如下:

在授权选项卡中:我在标题选项卡中选择了无授权
:密钥=授权值=Basic{{MyAuthoration}}
在正文选项卡中:

{
    "UserName": "{{UserName}}",
    "ServiceUrl": "{{ServiceUrl}}"
}

//which set it from the envitonment variable

在“预先请求”选项卡中:

// Require the crypto-js module
var CryptoJS = require("crypto-js");

// Parse the `username` and `password` environment variables
let credsParsed = CryptoJS.enc.Utf8.parse(`${pm.environment.get('admin')}:${pm.environment.get('admin')}`);

// Base64 encoded the parsed value
let credsEncoded = CryptoJS.enc.Base64.stringify(credsParsed);

// Set the valuse as an environment variable and use in the request
pm.environment.set('MyAuthorization', credsEncoded);
console.log(credsEncoded);

在测试选项卡中:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("LoginInfoID", jsonData.First.LoginInfoID);

然后我发送了请求,但未获授权。

之后,我已将身份验证类型设置为具有用户名和密码的基本身份验证,它工作正常,并且我从响应中得到了我想要的内容。

共有2个答案

皇甫鸿远
2023-03-14

您可以在预请求脚本中使用cryptp-js,并使用如下非常粗糙的解决方案:

// Require the crypto-js module
var CryptoJS = require("crypto-js");

// Parse the `username` and `password` environment variables
let credsParsed = CryptoJS.enc.Utf8.parse(`${pm.environment.get('username')}:${pm.environment.get('password')}`);

// Base64 encoded the parsed value
let credsEncoded = CryptoJS.enc.Base64.stringify(credsParsed);

// Set the valuse as an environment variable and use in the request
pm.environment.set('authCreds', credsEncoded);

您可以将凭据添加到一组不同的< code >环境文件中,位于< code >用户名和< code >密码项下。

在请求中,只需如下设置标题

您还可以在Collection/Sub文件夹级别设置它们,这样您就不会在每个请求中重复自己。

这是实现这一目标的一种方式,但还有其他方式。

凤衡
2023-03-14

另一种对我有用的方法:

  1. 为“用户名”和“密码”设置环境变量,然后保存
  2. 在请求的授权选项卡中,选择基本身份验证。
  3. 在用户名字段中,输入{{Username}}
  4. 对于密码字段,单击“显示密码”,然后输入{{Password}

希望这能帮助其他人:)

 类似资料:
  • 我试图从环境变量替换Postman中JSON主体的值,该值实际上被替换,但它在传递给POST请求时将JSON转换为字符串,因此请求最终失败,因为POST请求需要JSON主体。 例如,这里是下面的请求,变量已经在Postman中用值声明 发送请求后,整个正文将转换为字符串。知道如何保持正文是JSON,即使替换了变量的值并且不让它转换为字符串?

  • 问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑

  • 问题内容: 如何从内部设置一些环境变量以与类似命令一起使用? 这是我目前所拥有的: 我想在启动脚本中设置环境变量(例如),同时仍然能够仅通过一个命令来启动应用程序。 问题答案: 在脚本命令中设置环境变量: 然后在您的应用中使用。 注意:确保它可以跨平台工作。如果只关心Mac / Linux,则可以忽略它。

  • 问题内容: 我已经开始在Django项目中工作,我想设置一些环境变量,而不必手动设置它们或将bash文件作为源。 我想设置以下变量: 我已经读过这篇文章,但这并不能解决我想要的问题。另外,我尝试在Preferences- > Build,Execution,Deployment- > Console- > Python Console / Django Console中设置环境变量,但是它设置了解

  • 问题内容: 需要基于构建环境配置来设置标签的href值。 例如: 分期应有 产品应具有 当前设置: 生成命令: .env.staging.js: index.html: 在index.html中,这似乎不起作用。虽然类似的设置适用于JS文件 (可能是因为将JS文件解析并捆绑到一个文件中,并且捆绑程序在该时间点读取值) 尝试过的事情: index.html: (类似于PUBLIC_URL变量) 与浏

  • 问题内容: 我有一个bash脚本,用于设置环境变量并运行命令 现在,我想使用python代替bash,因为我想计算传递给命令的一些参数。 我试过了 和 其次是 但由于未设置LD_LIBRARY_PATH,因此程序总是放弃。 我怎样才能解决这个问题? 感谢帮助! (如果我在调用python脚本之前导出LD_LIBRARY_PATH,则一切正常,但我希望python确定路径并将环境变量设置为正确的值)