Skip to content

Instantly share code, notes, and snippets.

@amitrahav
Last active May 2, 2023 10:57
Show Gist options
  • Save amitrahav/637fde2b92febb9eda8c07cbb3abffbb to your computer and use it in GitHub Desktop.
Save amitrahav/637fde2b92febb9eda8c07cbb3abffbb to your computer and use it in GitHub Desktop.
Postman Auth0 pre-request auth script with Collection level variables. Define collection Auth to BearerToken with {{oidc_bearer_token}}
// collection pre-request script
// obtain parameters from collection configuration
const domain = pm.environment.get("auth0_domain");
const client_id = pm.environment.get("auth0_client_id");
const audience = pm.environment.get("auth0_audience");
const client_secert = pm.environment.get("auth0_client_secret");
const username = pm.environment.get("username");
const password = pm.environment.get("password");
const echoPostRequest = {
url: domain +'/oauth/token',
method: 'POST',
header: {
"Content-Type": "application/json",
},
body: {
mode: 'application/json',
raw: JSON.stringify(
{
username: username,
password: password,
client_id: client_id,
client_secret: client_secert,
audience: audience,
grant_type:'password'
})
}
}
// Check if needed to refresh token
var getToken = true;
console.log("current oidc_bearer_token:", pm.environment.get('oidc_bearer_token'))
console.log("current oidc_bearer_token_expiry:", pm.environment.get('oidc_bearer_token_expiry'))
if (!pm.environment.get('oidc_bearer_token_expiry') ||
!pm.environment.get('oidc_bearer_token')) {
console.log('Token or expiry date are missing')
} else if (pm.environment.get('oidc_bearer_token_expiry') <= (new Date()).getTime()) {
console.log('Token is expired')
} else {
getToken = false;
console.log('Token and expiry date are all good');
}
if (getToken) {
pm.sendRequest(echoPostRequest, function (err, res) {
var responseJson = res.json();
console.log("is resoponse error", !err, !responseJson.error, !!responseJson.access_token)
if (!err && !responseJson.error&& !!responseJson.access_token) {
console.log('Setting the token and expiry date',responseJson.access_token, responseJson.expires_in )
// save results to environment configuration
pm.environment.set('oidc_bearer_token', responseJson.access_token)
var expiryDate = new Date();
expiryDate.setSeconds(expiryDate.getSeconds() + responseJson.expires_in);
pm.environment.set('oidc_bearer_token_expiry', expiryDate.getTime());
}
else {
console.log({err});
console.error('Error: ' + {responseJson})
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment