kavachOS

Electron

Desktop app auth client for Electron.

@kavachos/electron provides secure auth for Electron desktop apps with encrypted token storage, OAuth popup windows, and IPC bridge for renderer-to-main communication.

Install

pnpm add @kavachos/electron

Setup (main process)

import { createKavachElectron } from '@kavachos/electron';

const kavach = createKavachElectron({
  baseUrl: 'https://api.myapp.com/api/kavach',
  appName: 'MyApp',
});

// Register IPC handlers
kavach.registerIpcHandlers(ipcMain);

Usage (renderer)

import { useKavachElectron } from '@kavachos/electron/renderer';

const { signIn, signOut, getSession, getUser } = useKavachElectron();

const session = await getSession();
if (!session) {
  await signIn('google'); // Opens OAuth popup window
}

Features

FeatureDescription
Secure storageTokens encrypted via Electron's safeStorage API
OAuth popupOpens provider auth in a new BrowserWindow
IPC bridgeSecure main/renderer communication
Auto-refreshBackground token refresh
Deep linksHandle myapp:// callback URLs

Token storage uses Electron's safeStorage.encryptString() which uses the OS keychain (Keychain on macOS, DPAPI on Windows, Secret Service on Linux).

On this page