Crate fxa_client
source ·Expand description
§Firefox Accounts Client
The fxa-client component lets applications integrate with the Firefox Accounts identity service. The shape of a typical integration would look something like:
-
Out-of-band, register your application with the Firefox Accounts service, providing an OAuth
redirect_uri
controlled by your application and obtaining an OAuthclient_id
. -
On application startup, create a
FirefoxAccount
object to represent the signed-in state of the application.- On first startup, a new
FirefoxAccount
can be created by callingFirefoxAccount::new
and passing the application’sclient_id
. - For subsequent startups the object can be persisted using the
to_json
method and re-created by callingFirefoxAccount::from_json
.
- On first startup, a new
-
When the user wants to sign in to your application, direct them through a web-based OAuth flow using
begin_oauth_flow
orbegin_pairing_flow
; when they return to your registeredredirect_uri
, pass the resulting authorization state back tocomplete_oauth_flow
to sign them in. -
Display information about the signed-in user by using the data from
get_profile
. -
Access account-related services on behalf of the user by obtaining OAuth access tokens via
get_access_token
. -
If the user opts to sign out of the application, calling
disconnect
and then discarding any persisted account data.
Structs§
- An OAuth access token, with its associated keys and metadata.
- A client connected to the user’s account.
- Information about the authorization state of the application.
- Parameters provided in an incoming OAuth request.
- The payload sent when invoking a “close tabs” command.
- A device connected to the user’s account.
- Device configuration
- Details of a web-push subscription endpoint.
- Object representing the signed-in state of an application.
- Local device that’s connecting to FxA
- Information about the user that controls a Firefox Account.
- A cryptographic key associated with an OAuth scope.
- The payload sent when invoking a “send tab” command.
- An individual entry in the navigation history of a sent tab.
- User data provided by the web content, meant to be consumed by user agents
Enums§
- An event that happened on the user’s account.
- A “capability” offered by a device.
- Enumeration for the different types of device.
- FxA internal error type These are used in the internal code. This error type is never returned to the consumer.
- Public error type thrown by many [
FirefoxAccount
] operations. - Fxa event
- High-level view of the authorization state
- Fxa state
- Internal state machine events
- State passed to the state checker, this is exactly the same as
internal_machines::State
except theComplete
variant uses a named field for UniFFI compatibility. - A command invoked by another device.
Type Aliases§
- Result returned by public-facing API functions
- Result returned by internal functions