PendingAuth
The in-flight half of an OAuth login, captured between beginLogin / beginSignup and AtOAuth.completeLogin.
This exists as a persistable type because the authorization step happens in a different process — a browser or Custom Tab. On Android the OS is free to kill the app while the user is typing a password on the authorization page, and it routinely does on low-memory devices. If the PKCE verifier and CSRF state only lived in memory, that kill would strand the login permanently: the callback returns to a fresh process that has no idea a login was ever started, and the user sees an error no amount of retrying can clear.
The DPoP keypair is serialized as raw byte arrays (PKCS8 private key + X509 public key), exactly as OAuthSession does. The consumer's PendingAuthStore implementation is responsible for encrypting these at rest — this record briefly holds key material and a PKCE verifier, so it deserves the same protection as a session.
The auth-server metadata is flattened rather than nested so the stored shape stays a flat, forward-compatible JSON object.
Constructors
Properties
stamped at save time so AtOAuth can discard a pending login that is older than its TTL. Authorization codes expire server-side in minutes; a pending record that outlives that is never going to complete, and keeping key material on disk past its usefulness is needless exposure.
Serialized AtOAuth's internal FlowOrigin — "Login" or "Signup".