Prerequisites
- A Tauri v2 app with a Rust
src-tauri/crate - A Supabase project (hosted, or a local stack via
supabase start) - A GitHub token with
read:packagesto install the bindings package from GitHub Packages (@exegia/use-authcomes from the public npm registry and needs no token)
1
Install the plugin
src-tauri/Cargo.toml
src-tauri/src/lib.rs
2
Install the frontend packages
Both packages live on the public npm registry, so this needs no Adding the hooks pulls the bindings in with them — install the bindings on their own only if you are not using React.
.npmrc and no token:3
Configure the project
src-tauri/tauri.conf.json
4
Grant permissions
src-tauri/capabilities/default.json
supabase-auth:default covers the everyday lifecycle. Account mutations such as password reset, profile updates, identity linking and passkey management are opt-in — see Permissions.5
Sign someone in
The fastest path from React is the hooks — headless, so the markup is yours:Or call the bindings directly:And from Rust, symmetrically:
Try the example app
The repository ships a runnable multi-window demo wired to every block against a local Supabase stack.Next steps
Handle errors
Every rejection is a structured
AuthError with a switchable kind.Add social sign-in
How the loopback + PKCE round-trip works, and what to allow-list.

