feat: implement auth token synchronization between Electron and web app

- Added IPC channels for getting and setting auth tokens in Electron.
- Implemented functions to sync tokens from localStorage to Electron and vice versa.
- Updated components to ensure tokens are retrieved from Electron when not available locally.
- Enhanced user authentication flow by integrating token management across windows.
This commit is contained in:
DESKTOP-RTLN3BA\$punk 2026-04-06 23:02:25 -07:00
parent eb5799336c
commit e920923fa4
8 changed files with 82 additions and 12 deletions

View file

@ -32,4 +32,7 @@ export const IPC_CHANNELS = {
FOLDER_SYNC_ACK_EVENTS: 'folder-sync:ack-events',
BROWSE_FILES: 'browse:files',
READ_LOCAL_FILES: 'browse:read-local-files',
// Auth token sync across windows
GET_AUTH_TOKENS: 'auth:get-tokens',
SET_AUTH_TOKENS: 'auth:set-tokens',
} as const;

View file

@ -21,6 +21,8 @@ import {
readLocalFiles,
} from '../modules/folder-watcher';
let authTokens: { bearer: string; refresh: string } | null = null;
export function registerIpcHandlers(): void {
ipcMain.on(IPC_CHANNELS.OPEN_EXTERNAL, (_event, url: string) => {
try {
@ -89,4 +91,12 @@ export function registerIpcHandlers(): void {
ipcMain.handle(IPC_CHANNELS.READ_LOCAL_FILES, (_event, paths: string[]) =>
readLocalFiles(paths)
);
ipcMain.handle(IPC_CHANNELS.SET_AUTH_TOKENS, (_event, tokens: { bearer: string; refresh: string }) => {
authTokens = tokens;
});
ipcMain.handle(IPC_CHANNELS.GET_AUTH_TOKENS, () => {
return authTokens;
});
}