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();
See also
Document Tags and Contributors
                       Last updated by:
                      vladikoff,