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/electronSetup (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
| Feature | Description |
|---|---|
| Secure storage | Tokens encrypted via Electron's safeStorage API |
| OAuth popup | Opens provider auth in a new BrowserWindow |
| IPC bridge | Secure main/renderer communication |
| Auto-refresh | Background token refresh |
| Deep links | Handle 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).