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.
Macros§
Structs§
- Access
Token Info - An OAuth access token, with its associated keys and metadata.
- Attached
Client - A client connected to the user’s account.
- Authorization
Info - Information about the authorization state of the application.
- Authorization
Parameters - Parameters provided in an incoming OAuth request.
- Close
Tabs Payload - The payload sent when invoking a “close tabs” command.
- Device
- A device connected to the user’s account.
- Device
Config - Device configuration
- Device
Push Subscription - Details of a web-push subscription endpoint.
- Firefox
Account - Object representing the signed-in state of an application.
- FxaConfig
- FxaState
Machine Checker - Local
Device - Local device that’s connecting to FxA
- Profile
- Information about the user that controls a Firefox Account.
- Scoped
Key - A cryptographic key associated with an OAuth scope.
- Send
TabPayload - The payload sent when invoking a “send tab” command.
- TabHistory
Entry - An individual entry in the navigation history of a sent tab.
- User
Data - User data provided by the web content, meant to be consumed by user agents
Enums§
- Account
Event - An event that happened on the user’s account.
- Close
Tabs Result - Device
Capability - A “capability” offered by a device.
- Device
Type - Enumeration for the different types of device.
- Error
- FxA internal error type These are used in the internal code. This error type is never returned to the consumer.
- FxaError
- Public error type thrown by many [
FirefoxAccount
] operations. - FxaEvent
- Fxa event
- FxaRust
Auth State - High-level view of the authorization state
- FxaServer
- FxaState
- Fxa state
- FxaState
Checker Event - Internal state machine events
- FxaState
Checker State - 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. - Incoming
Device Command - A command invoked by another device.