Skip to content

Instantly share code, notes, and snippets.

@majkinetor
Last active March 13, 2024 11:36
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save majkinetor/2a67c78af393865e4fa7daaa95e19a87 to your computer and use it in GitHub Desktop.
Save majkinetor/2a67c78af393865e4fa7daaa95e19a87 to your computer and use it in GitHub Desktop.
bruno auto login and refresh every 10 minutes
script:pre-request {
const { login } = require('./utils')
await login(req)
}
module.exports = {
login: async (req) => {
let accessToken = bru.getEnvVar("accessToken");
let accessTokenTime = bru.getEnvVar("accessTokenTime");
let elapsedSeconds = accessTokenTime ? (Date.now() - accessTokenTime)/1000 : 0;
if (!accessToken || elapsedSeconds > 600 ) {
const axios = require("axios");
const HOST = bru.getEnvVar("HOST");
const loginUrl = `${HOST}/security/login`;
await axios.post(loginUrl,{
login: bru.getEnvVar("USERNAME"),
password: bru.getEnvVar("PASSWORD")
}).then(function (res) {
accessToken = res.data.payload.accessToken;
// console.log(accessToken);
bru.setEnvVar("accessToken",accessToken)
bru.setEnvVar("accessTokenTime", Date.now())
}).catch(function (error) {
console.log(error);
});
}
req.setHeader("Authorization", "Bearer " + accessToken);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment