Как установить базовую авторизацию из переменной среды в почтальоне? - PullRequest
0 голосов
/ 04 июля 2019

Я хочу установить базовую авторизацию в Postman, используя переменную окружения. Потому что у меня разные логин и пароль авторизации для разных вызовов API.

Я установил свой почтальон в соответствии с ниже:

На вкладке «Авторизация»: я выбрал Без аутентификации
На вкладке заголовка: ключ = Authorization значение = Basic{{MyAuthorization}}
Вкладка в теле:

{
    "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);

Тогда я отправил запрос и получил несанкционированный доступ.

После этого я установил тип аутентификации на базовую аутентификацию с именем пользователя и паролем. он работает нормально, и я получил то, что хотел от ответа.

1 Ответ

1 голос
/ 04 июля 2019

Вы можете использовать cryptp-js в Pre-request Script с очень грубым решением, подобным этому:

// 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);

Вы можете добавить свои учетные данные в набор различных environmentфайлы, под ключами username и password.

В запросе просто установите Header следующим образом:

Postman

Вы также можете установить их в Collection / Subуровень папки, чтобы вы не повторяли себя в каждом запросе.

Это один из способов, которым вы могли бы достичь этого, но будут и другие способы.

...