#variables #oauth-2.0 #jwt #postman #access-token
#переменные #oauth-2.0 #jwt #postman #токен доступа
Вопрос:
Я настроил Postman для получения моего токена доступа JWT от моего поставщика удостоверений. Я хотел бы сохранить некоторые свойства, хранящиеся в токене доступа, в качестве переменных (например, sub, aud, scope).
jwt.io может декодировать токен доступа, поэтому мне было интересно, есть ли что-нибудь в Postman (я ничего не смог найти) или какой-то другой способ сделать это.
Комментарии:
Ответ №1:
Postman поддерживает библиотеку cryptojs: https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#using-external-libraries
Добавьте приведенный ниже пример в тестовый скрипт postman:
let jwt = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0b3B0YWwuY29tIiwiZXhwIjoxNDI2NDIwODAwLCJodHRwOi8vdG9wdGFsLmNvbS9qd3RfY2xhaW1zL2lzX2FkbWluIjp0cnVlLCJjb21wYW55IjoiVG9wdGFsIiwiYXdlc29tZSI6dHJ1ZX0.UsrGn95rk5DStcC_WwIr3WIv5rHe2IApX56I58l8uyo`
a = jwt.split('.');
//a.forEach(function (val) {
var words = CryptoJS.enc.Base64.parse(a[1]);
var textString = CryptoJS.enc.Utf8.stringify(words);
console.log(textString)
//})
Вывод:
hmacSHA256 — это не алгоритм шифрования, а алгоритм хеширования, поэтому его невозможно декодировать, поскольку хеширование является односторонней функцией.
поскольку последняя часть имеет вид
HMACSHA256 of ( base64(header) "." base64(body) )
вы можете попробовать создать его и приравнять оба значения к равным