Новое в api тестирование скриптов предварительного запроса-автоматическое получение маркера доступа с типом Гранта OAuth 2.0 "учетные данные клиента"
Я застрял на этом несколько дней и просмотрел много статей, но не могу найти сценарий, который может мне помочь.
Основой скрипта является автоматическое получение маркера авторизации, прежде чем я использую метод POST
.
Как было сказано ранее, при получении маркера доступа для данного конкретного api тип гранта Client Crentials
и следующие поля необходимы при ручном получении маркера: -
Token Name
, Grant Type
, Access Token URL
, Client ID
, Client Secrect
, Scope
и Client Authentication
.
Существует ли простой скрипт, который я могу сделать это за меня, прежде чем на самом деле делать POST
, так как это утомительно вручную получать токен.
Заранее спасибо за любую помощь.
С Уважением
Просто обновление я нашел способ на самом деле получить маркер сейчас , так что если вы сделаете следующее.
- Добавить новый запрос
- Выберите 'Post'
- введите url api
- Нажмите "Тело"
- нажмите "x-www-form-urlencoded"
- я ввел следующее: 'Keys'(введите свои собственные соответствующие' values') - 'client_id', 'client_secret', 'scope' и 'grant type'
- Нажмите Кнопку "Отправить"
Это даст вам ваш токен, теперь мне нужно найти способ либо извлечь токен в новом запросе, либо найти способ поместить его в Скрипты предварительного запроса, поэтому я могу ввести данные, необходимые как " raw " JSON.
Опять же, если кто-то может помочь, будет признателен.С Уважением
1 ответ:
Будет ли это вам чем-нибудь полезно? Или хотя бы приблизить тебя к тому, что тебе нужно?
Если вы добавите этот скрипт на уровень
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
.