Skip to content

Instantly share code, notes, and snippets.

@Dzoukr
Forked from landy/pre-request.js
Created August 10, 2020 18:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dzoukr/a22bd74ea4fddb36019c3301cbbeaceb to your computer and use it in GitHub Desktop.
Save Dzoukr/a22bd74ea4fddb36019c3301cbbeaceb to your computer and use it in GitHub Desktop.
Load Bearer token on each postman request
//add this as pre-request script on postman collection
const moment = require("moment")
const {
apiRoot,
authPath,
username,
password,
bearerTokenValidUntil
} = pm.variables.toObject();
const req = {
url: apiRoot + "/" + authPath,
method: "POST",
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: {
mode: "urlencoded",
urlencoded: [
{key: "grant_type", value: "password"},
{key: "username", value: username},
{key: "password", value: password}
]
}
}
const resHandler = (err, res) => {
const {access_token, ".expires" : expires} = res.json()
pm.environment.set("bearerToken", access_token);
pm.environment.set("bearerTokenValidUntil", expires);
}
if (!bearerTokenValidUntil || moment(bearerTokenValidUntil).isBefore(moment())) {
pm.sendRequest(req, resHandler);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment