Skip to main content
Introduction banner Desktop authentication has a few problems the web does not: token storage that is not a plain-text JSON file, OAuth redirects with no web server to redirect to, sessions that survive a restart, and background refreshes that must never race a sign-out. This plugin solves them once and exposes the result to both sides of a Tauri app.

What ships

All three are versioned in lockstep from one repository.

Guarantees worth knowing

Refresh tokens never reach the webview

Sessions crossing the IPC boundary are sanitized. Only Rust sees the full session.

No zombie sessions

Every mutation serializes through one lock held across the network await, so a sign-out racing a background refresh always ends fully signed out.

Offline-friendly

Launching offline with an unexpired stored session keeps you signed in; refresh retries in the background. Corrupt or revoked stored sessions degrade to signed-out, never a crash.

Nothing hangs

Every call resolves or rejects within a 15 second network budget. A stalled request surfaces as a network error, not a pending promise.

Where to go next

Quickstart

Install, configure, and sign someone in.

React hooks

Session state and never-throwing auth actions, with no UI of their own.

JavaScript API

Every binding, and the structured error type behind each rejection.

Permissions

The default command set, and the account mutations you opt into.