The FxAccountsOAuthClient.jsm
JavaScript module provides a way for browser services to authenticate with the Firefox Accounts OAuth server.
Components.utils.import("resource://gre/modules/FxAccountsOAuthClient.jsm");
Creating a new FxAccountsOAuthClient
new FxAccountsOAuthClient(Object options);
Method overview
launchWebFlow(); |
tearDown(); |
Attributes
parameters | Object | Returns the set of parameters that initialized the Firefox Accounts OAuth flow. |
onComplete |
Function | Gets called when the Firefox Accounts OAuth flow successfully completes. First and only argument is an Object that has "state" and "code" properties. |
Constructor FxAccountsOAuthClient()
Creates and returns a new FxAccountsOAuthClient object.
FxAccountsOAuthClient FxAccountsOAuthClient( Object options Object parameters String client_id String state String oauth_uri String content_uri [optional] String scope [optional] String action [optional] String authorizationEndpoint );
Parameters
- client_id - OAuth id returned from client registration.
- state - OAuth state value that will be returned to the client as-is upon redirection.
- oauth_uri - The FxA OAuth API server uri, versioned. Example: "https://oauth.accounts.firefox.com/v1"
- content_uri - The FxA Content server uri. Example: "https://accounts.firefox.com"
- [optional] scope - A colon-separated list of scopes that the user has authorized.
- [optional] action - If provided, should be either "signup" or "signin".
-
parameters
- Set of parameters to initialize the Firefox Accounts OAuth flow.
- authorizationEndpoint Optional
-
Optional authorization endpoint for the OAuth server. Default:
/authorization
Return value
A newly created FxAccountsOAuthClient object implementing the methods described in this article.
Methods
launchWebFlow()
Opens a new tab at the Firefox Accounts OAuth authorization URL. Registers a WebChannel listener and sets up a callback if needed.
Parameters
- None
tearDown()
Call this function to manually release all channels and callbacks that are in use by this client.
Parameters
- None
Examples
Using the FxAccountsOAuthClient
Chrome code
let parameters = { oauth_uri: OAUTH_SERVER_ENDPOINT, client_id: OAUTH_CLIENT_ID, content_uri: CONTENT_SERVER_URL, state: OAUTH_STATE } let client = new FxAccountsOAuthClient({ parameters: parameters }); client.onComplete = function (tokenData) { // tokenData consists of two properties: "tokenData.state" and "tokenData.code" }; client.launchWebFlow();