Last active
March 13, 2024 11:36
-
-
Save majkinetor/2a67c78af393865e4fa7daaa95e19a87 to your computer and use it in GitHub Desktop.
bruno auto login and refresh every 10 minutes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
script:pre-request { | |
const { login } = require('./utils') | |
await login(req) | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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