FirefoxAccountInterface

Object representing the signed-in state of an application.

The FirefoxAccount object is the main interface provided by this crate. It represents the signed-in state of an application that may be connected to user's Firefox Account, and provides methods for inspecting the state of the account and accessing other services on behalf of the user.

Inheritors

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard

Create a new OAuth authorization code using the stored session token.

Link copied to clipboard

Check authorization status for this application.

Link copied to clipboard
abstract fun clearAccessTokenCache()

Clear the access token cache in response to an auth failure.

Link copied to clipboard
abstract fun clearDeviceName()

Clear any custom display name used for this application instance.

Link copied to clipboard
abstract fun closeTabs(targetDeviceId: String, urls: List<String>): CloseTabsResult

Use device commands to close one or more tabs on another device.

Link copied to clipboard
abstract fun disconnect()

Disconnect from the user's account.

Link copied to clipboard
abstract fun ensureCapabilities(supportedCapabilities: List<DeviceCapability>): LocalDevice

Ensure that the device record has a specific set of capabilities.

Link copied to clipboard
abstract fun gatherTelemetry(): String

Collect and return telemetry about send-tab attempts.

Link copied to clipboard
abstract fun getAccessToken(scope: String, useCache: Boolean = true): AccessTokenInfo

Get a short-lived OAuth access token for the user's account.

Link copied to clipboard

Get the list of all client applications attached to the user's account.

Link copied to clipboard

Get the high-level authentication state of the client

Link copied to clipboard

Get a URL which shows a "successfully connected!" message.

Link copied to clipboard
abstract fun getCurrentDeviceId(): String

Get the device id registered for this application.

Link copied to clipboard
abstract fun getDevices(ignoreCache: Boolean): List<Device>

Get the list of devices registered on the user's account.

Link copied to clipboard
abstract fun getManageAccountUrl(entrypoint: String): String

Get a URL at which the user can manage their account and profile data.

Link copied to clipboard
abstract fun getManageDevicesUrl(entrypoint: String): String

Get a URL at which the user can manage the devices connected to their account.

Link copied to clipboard

Get the URL at which to begin a device-pairing signin flow.

Link copied to clipboard
abstract fun getProfile(ignoreCache: Boolean): Profile

Get profile information for the signed-in user, if any.

Link copied to clipboard
abstract fun getSessionToken(): String

Get the session token for the user's account, if one is available.

Link copied to clipboard

Builds a complete signedInUser JSON object for a WebChannel fxaccounts:fxa_status response, embedding the session token without exposing it to the browser layer. Email and uid are read from the cached profile in internal state. Returns None if no session token is available.

Link copied to clipboard
abstract fun getState(): FxaState

Get the current state

Link copied to clipboard

Get the token server URL

Link copied to clipboard
abstract fun handlePushMessage(payload: String): AccountEvent

Process and respond to a server-delivered account update message

Link copied to clipboard
abstract fun handleSessionTokenChange(sessionToken: String)

Update the stored session token for the user's account.

Link copied to clipboard
abstract fun handleWebChannelLogin(jsonPayload: String)

Stores the session token from a WebChannel login JSON payload without exposing it to the browser layer.

Link copied to clipboard
abstract fun handleWebChannelPasswordChange(jsonPayload: String)

Handle a WebChannel password-change notification by exchanging the new session token for a new refresh token.

Link copied to clipboard
abstract fun hasScope(scope: String): Boolean

Check whether the account has already been granted the given OAuth scope(s).

Link copied to clipboard
abstract fun initializeDevice(name: String, deviceType: DeviceType, supportedCapabilities: List<DeviceCapability>): LocalDevice

Create a new device record for this application.

Link copied to clipboard
abstract fun matchesServer(server: FxaServer): Boolean

Check if an account was created from a config

Link copied to clipboard
abstract fun onAuthIssues()

Update the state based on authentication issues.

Link copied to clipboard

Poll the server for any pending device commands.

Link copied to clipboard
abstract fun processEvent(event: FxaEvent): FxaState

Process an event (login, logout, etc).

Link copied to clipboard
abstract fun sendSingleTab(targetDeviceId: String, title: String, url: String, isPrivate: Boolean = false)

Use device commands to send a single tab to another device.

Link copied to clipboard
abstract fun setDeviceName(displayName: String): LocalDevice

Update the display name used for this application instance.

Link copied to clipboard

Set or update a push subscription endpoint for this device.

Link copied to clipboard
abstract fun simulateNetworkError()

Used by the application to test auth token issues

Link copied to clipboard

Used by the application to test auth token issues

Link copied to clipboard

Used by the application to test auth token issues

Link copied to clipboard
abstract fun toJson(): String

Save current state to a JSON string.