azure auth

This commit is contained in:
Jan Prochazka
2024-08-05 12:56:43 +02:00
parent fb2e261a08
commit 97aa563fe7
9 changed files with 64 additions and 37 deletions

View File

@@ -252,6 +252,7 @@ module.exports = {
accessToken,
passwordMode: undefined,
unsaved: true,
useRedirectDbLogin: false,
};
if (old.passwordMode == 'askUser') {
res.user = user;
@@ -395,12 +396,18 @@ module.exports = {
},
dbloginToken_meta: true,
async dbloginToken({ code, conid, redirectUri }) {
const connection = await this.getCore({ conid });
const driver = requireEngineDriver(connection);
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', { savedConId: conid, volatileConId: volatile._id });
async dbloginToken({ code, conid, strmid, redirectUri }) {
try {
const connection = await this.getCore({ conid });
const driver = requireEngineDriver(connection);
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', { strmid, savedConId: conid, volatileConId: volatile._id });
return { success: true };
} catch (err) {
logger.error({ err }, 'Error getting DB token');
return { error: err.message };
}
},
};

View File

@@ -19,6 +19,7 @@ async function handleRefresh() {
const databases = await driver.listDatabases(systemConnection);
setStatusName('ok');
const databasesString = stableStringify(databases);
console.log('************* DATABASES *************', databases);
if (lastDatabases != databasesString) {
process.send({ msgtype: 'databases', databases });
lastDatabases = databasesString;
@@ -59,8 +60,11 @@ async function handleConnect(connection) {
const driver = requireEngineDriver(storedConnection);
try {
console.log('************* CONNECTING *************');
systemConnection = await connectUtility(driver, storedConnection, 'app');
console.log('************* VERSION *************');
readVersion();
console.log('************* REFRESH *************');
handleRefresh();
if (extractBoolSettingsValue(globalSettings, 'connection.autoRefresh', false)) {
setInterval(

View File

@@ -31,6 +31,9 @@ module.exports = {
electronSender.send(message, data == null ? null : data);
}
for (const strmid in sseResponses) {
if (data?.strmid && data?.strmid != strmid) {
continue;
}
let skipThisStream = false;
if (sseResponses[strmid].filter) {
for (const key in sseResponses[strmid].filter) {
@@ -47,7 +50,7 @@ module.exports = {
}
sseResponses[strmid].response?.write(
`event: ${message}\ndata: ${stableStringify(data == null ? null : data)}\n\n`
`event: ${message}\ndata: ${stableStringify(data == null ? null : _.omit(data, ['strmid']))}\n\n`
);
}
},