diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 2dc50073e..30bd56594 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -243,12 +243,13 @@ module.exports = { }, saveVolatile_meta: true, - async saveVolatile({ conid, user, password, test }) { + async saveVolatile({ conid, user = undefined, password = undefined, accessToken = undefined, test = false }) { const old = await this.getCore({ conid }); const res = { ...old, _id: crypto.randomUUID(), password, + accessToken, passwordMode: undefined, unsaved: true, }; @@ -397,7 +398,9 @@ module.exports = { async dbloginToken({ code, conid, redirectUri }) { const connection = await this.getCore({ conid }); const driver = requireEngineDriver(connection); - const token = await driver.getAuthTokenFromCode(connection, { code, redirectUri }); - console.log('******************************** WE HAVE ACCESS TOKEN', token); + const accessToken = await driver.getAuthTokenFromCode(connection, { code, redirectUri }); + const volatile = await this.saveVolatile({ conid, accessToken }); + console.log('******************************** WE HAVE ACCESS TOKEN', accessToken); + socket.emit('got-volatile-token', { conid, volatileConId: volatile._id }); }, }; diff --git a/packages/web/src/App.svelte b/packages/web/src/App.svelte index a7ffe82ad..0c0c8c08b 100644 --- a/packages/web/src/App.svelte +++ b/packages/web/src/App.svelte @@ -14,7 +14,7 @@ // import { shouldWaitForElectronInitialize } from './utility/getElectron'; import { subscribeConnectionPingers } from './utility/connectionsPinger'; import { subscribePermissionCompiler } from './utility/hasPermission'; - import { apiCall } from './utility/api'; + import { apiCall, installNewVolatileConnectionListener } from './utility/api'; import { getConfig, getSettings, getUsedApps } from './utility/metadataLoaders'; import AppTitleProvider from './utility/AppTitleProvider.svelte'; import getElectron from './utility/getElectron'; @@ -48,6 +48,7 @@ subscribeApiDependendStores(); subscribeConnectionPingers(); subscribePermissionCompiler(); + installNewVolatileConnectionListener(); } loadedApi = loadedApiValue; diff --git a/packages/web/src/utility/api.ts b/packages/web/src/utility/api.ts index d61f94601..c2ce59bd9 100644 --- a/packages/web/src/utility/api.ts +++ b/packages/web/src/utility/api.ts @@ -223,6 +223,12 @@ export function getVolatileConnections() { return Object.values(volatileConnectionMap); } +export function installNewVolatileConnectionListener() { + apiOn('got-volatile-token', ({ conid, volatileConId }) => { + setVolatileConnectionRemapping(conid, volatileConId); + }); +} + function enableApiLog() { apiLogging = true; console.log('API loggin enabled');