Это поможет тебе?Или хотя бы приблизить вас к тому, что вам нужно?
Если вы добавите этот сценарий к уровню Collection
pre-request script
, он получит токен и установит его как переменную jwt
.Вы можете использовать эту переменную в Headers
для основных запросов, используя синтаксис {{jwt}}
. Этот сценарий также получает значение expiry_in
из ответа токена и устанавливает его в качестве переменной.
На каждомзапросив в коллекции, он запустит скрипт и проверит наличие свойств AccessTokenExpiry
и jwt
в файле среды; он также проверит, не истек ли токен.Если какое-либо из этих утверждений является правдой, оно получит еще один токен для вас.Если все в порядке, он будет использовать то, что вы установили.
const moment = require('moment')
const getJWT = {
url: `<your token base path>/Auth/connect/token`,
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: {
mode: 'urlencoded',
urlencoded: [
{key: 'grant_type', value: 'client_credentials'},
{key: 'scope', value: '<scope details>'}
{key: 'client_id', value: 'your creds'}
{key: 'client_secret', value: 'your creds'}
]
}
}
var getToken = true
if (!_.has(pm.environment.toObject(), 'AccessTokenExpiry')
|| !_.has(pm.environment.toObject(), 'jwt')
|| pm.environment.get('AccessTokenExpiry') <= moment().valueOf()) {
} else {
getToken = false
}
if (getToken) {
pm.sendRequest(getJWT, (err, res) => {
if (err === null) {
pm.environment.set('jwt', `Bearer ${res.json().access_token}`)
var expiryDate = moment().add(res.json().expires_in, 's').valueOf()
pm.environment.set('AccessTokenExpiry', expiryDate)
}
})
}
Чтобы получить доступ к элементам уровня коллекции, при наведении указателя мыши на имя коллекции и нажатии значка ...
отобразится списокопции меню.Выберите edit
.