origin-auth
OAuth 2.0 authorization code flow with PKCE, token storage and refresh for Origin.
Part of Origin, a Rust/Tauri platform for building desktop applications from a shared set of domain crates. See the workspace documentation for how the pieces fit together, and ARCHITECTURE.md for the rules this crate follows.
Example
use ;
// `OAuthConfig::new` returns a `Result`: both endpoints must be `https://`.
let config = new?
.with_scopes;
// `http` is an `Arc<dyn HttpClient>` and `clock` an `Arc<dyn Clock>`, supplied by the
// composition root.
let flow = new;
let pending = flow.begin?;
// Send the user to `pending.authorization_url`, then, once the redirect listener has
// the code:
let tokens = flow.exchange.await?;
Stability
Pre-1.0 (0.1.0). Public types, enums and field sets may still change between minor
versions; pin an exact version if that matters to you.