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 OAuth client_id.

  • On application startup, create a FirefoxAccount object to represent the signed-in state of the application.

  • When the user wants to sign in to your application, direct them through a web-based OAuth flow using begin_oauth_flow or begin_pairing_flow; when they return to your registered redirect_uri, pass the resulting authorization state back to complete_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.


Internal implementation details for the fxa_client crate.



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.
A device connected to the user’s account.
Details of a web-push subscription endpoint.
Object representing the signed-in state of an application.
Statistics about the completion of a migration from legacy sign-in data.
Additional metrics tracking parameters to include in an OAuth request.
Information about the user that controls a Firefox Account.
A cryptograpic 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.


An event that happened on the user’s account.
A “capability” offered by a device.
Generic error type thrown by many FirefoxAccount operations.
A command invoked by another device.
The current state migration from legacy sign-in data.