From b28027a2c2025c7565dccd4c444e0de25416862a Mon Sep 17 00:00:00 2001 From: Mateusz Pietryga Date: Sat, 13 Apr 2024 23:57:32 +0200 Subject: [PATCH] Include resolved oauth2 authorization details in req object to be usable by scripts The new variable 'credentials' is now available in 'req' object. It is added automatically during request preparation if oauth2 method is used and is value is either evaluated or retrieved from collection oauth2 cache. #1003 --- packages/bruno-electron/src/ipc/network/index.js | 4 ++++ packages/bruno-js/src/bruno-request.js | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 06aa3e1c01..f843729d96 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -208,24 +208,28 @@ const configureRequest = async ( case 'authorization_code': { interpolateVars(requestCopy, envVars, collectionVariables, processEnvVars); const { credentials } = await oauth2AuthorizeWithAuthorizationCode(requestCopy, collectionUid); + request.credentials = credentials; request.headers['Authorization'] = `Bearer ${credentials.access_token}`; break; } case 'client_credentials': { interpolateVars(requestCopy, envVars, collectionVariables, processEnvVars); const { credentials } = await oauth2AuthorizeWithClientCredentials(requestCopy, collectionUid); + request.credentials = credentials; request.headers['Authorization'] = `Bearer ${credentials.access_token}`; break; } case 'password': { interpolateVars(requestCopy, envVars, collectionVariables, processEnvVars); const { credentials } = await oauth2AuthorizeWithPasswordCredentials(requestCopy, collectionUid); + request.credentials = credentials; request.headers['Authorization'] = `Bearer ${credentials.access_token}`; break; } case 'implicit': { interpolateVars(requestCopy, envVars, collectionVariables, processEnvVars); const { credentials } = await oauth2AuthorizeWithImplicitFlow(requestCopy, collectionUid); + request.credentials = credentials; request.headers['Authorization'] = `Bearer ${credentials.access_token}`; break; } diff --git a/packages/bruno-js/src/bruno-request.js b/packages/bruno-js/src/bruno-request.js index 909adf92a6..2a8708b79a 100644 --- a/packages/bruno-js/src/bruno-request.js +++ b/packages/bruno-js/src/bruno-request.js @@ -6,6 +6,7 @@ class BrunoRequest { this.headers = req.headers; this.body = req.data; this.timeout = req.timeout; + this.credentials = req.credentials; } getUrl() {