Hi,
Is it somehow possible to set in a pre-request script the current value of a global/environment variable instead of the initial value?
My script:
const refreshRequest = {
url: 'https://securetoken.googleapis.com/v1/token?key=' + pm.globals.get("webApiKey"),
method: 'POST',
header: 'Content-Type:application/json',
body: {
mode: 'application/json',
raw: JSON.stringify(
{
grant_type: 'refresh_token',
refresh_token: pm.globals.get("refreshToken")
})
}
};
var getToken = true;
if (!pm.globals.get('expirationTime') ||
!pm.globals.get('idToken')) {
console.log('Token or expiry date are missing')
} else if (pm.globals.get('expirationTime') <= (new Date()).getTime()) {
console.log('Token is expired')
} else {
getToken = false;
console.log('Token and expiry date are all good');
}
if (getToken) {
pm.sendRequest(refreshRequest, (err, res) => {
console.log(err ? err : res.json());
if (!err) {
console.log('Saving the tokens and expiry date')
var responseJson = res.json();
pm.globals.set('idToken', responseJson.id_token)
pm.globals.set('refreshToken', responseJson.refresh_token)
var expiryDate = new Date();
expiryDate.setSeconds(expiryDate.getSeconds() + responseJson.expires_in);
pm.globals.set('expirationTime', expiryDate.getTime());
}
})
}
As you can see I have several pm.globals.set
calls in the script, which set rather security relevant variables, like id and refresh tokens.
I don’t want these variables to be synced to all colleagues.
When I run pm.globals.set('refreshToken', responseJson.refresh_token)
this does not only set the current value, it set’s the initial value as well, what I try to prevent.
How can I achieve this?
I hope for some good tips,
Dennis