Как открыть токен JWT в Почтальоне, чтобы поместить одно из значений утверждений в переменную - PullRequest
0 голосов
/ 02 октября 2018

Чтобы создать специальный тест для моего приложения с помощью Postman, после входа в систему и получения токена JWT мне нужно получить конкретное значение заявки для использования в переменной в другом POST на Postman.

Возможно ли это без разработки API для этого?

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Вот простая функция для этого.

let jsonData = pm.response.json();
// use whatever key in the response contains the jwt you want to look into.  This example is using access_token
let jwtContents = jwt_decode(jsonData.access_token);

// Now you can set a postman variable with the value of a claim in the JWT
pm.variable.set("someClaim", jwtContents.payload.someClaim);

function jwt_decode(jwt) {
    var parts = jwt.split('.'); // header, payload, signature
    let tokenContents={};
    tokenContents.header = JSON.parse(atob(parts[0]));
    tokenContents.payload = JSON.parse(atob(parts[1]));
    tokenContents.signature = atob(parts[2]);

    // this just lets you see the jwt contents in the postman console.
    console.log("Token Contents:\n" + JSON.stringify(tokenContents, null, 2));

    return tokenContents;
}

В этом примере бит сигнатуры все еще бесполезен, поэтому вы не можете проверить его с помощью этого, но он по-прежнему отвечает на ваш вопрос.

0 голосов
/ 03 октября 2018

Я создал запрос в Postman, который «регистрируется», а затем в разделе «тесты» ответа содержится следующее

  var data = JSON.parse(responseBody);
  postman.clearGlobalVariable("access_token");
  postman.setGlobalVariable("access_token", data.access_token);

. Это помещает токен доступа в глобальную переменную, чтобы вы моглииспользуйте это где угодно.Если вы хотите прочитать что-то из заявления JWT, это немного сложнее. Узнайте, как добавить библиотеку в https://github.com/postmanlabs/postman-app-support/issues/1180#issuecomment-115375864. Я бы использовал библиотеку декодирования JWT - https://github.com/auth0/jwt-decode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...