Class TokenManagerAbstract

Token Manager class that provides high-level abstraction for Authorization Code flow, PKCE value generation, token exchange and token storage.

Supports both embedded authentication as well as external authentication via redirects

Constructors

Methods

  • Parameters

    • Optionaloptions: GetTokensOptions

      Options for retrieving tokens.

      Configuration options.

      • OptionalcallbackFactory?: FRCallbackFactory
      • OptionalclientId?: string
      • Optionalmiddleware?: RequestMiddleware[]
      • OptionalrealmPath?: string
      • OptionalredirectUri?: string
      • Optionalscope?: string
      • OptionalserverConfig?: ServerConfig
      • OptionaltokenStore?: TokenStoreObject | "sessionStorage" | "localStorage"
      • Optionaltree?: string
      • Optionaltype?: string
      • OptionaloauthThreshold?: number
      • OptionallogLevel?: LogLevel
      • Optionallogger?: LoggerFunctions<
            (...msgs: unknown[]) => void,
            (...msgs: unknown[]) => void,
            (...msgs: unknown[]) => void,
            (...msgs: unknown[]) => void,
        >
      • OptionalplatformHeader?: boolean
      • Optionalprefix?: string
      • OptionalforceRenew?: boolean
      • Optionallogin?: "redirect" | "embedded"
      • OptionalskipBackgroundRequest?: boolean
      • Optionalquery?: StringDict<string>

    Returns Promise<void | OAuth2Tokens>

    • Returns a promise that resolves to the retrieved tokens or void.

    getTokens - Retrieves OAuth2 tokens from the server or local storage.

    • Throws an error if the client ID is not provided, if tokens cannot be exchanged, or if there is a state mismatch.

    Example 1:

    const tokens = forgerock.TokenManager.getTokens({
    forceRenew: true, // If you want to get new tokens, despite existing ones
    login: 'embedded', // If user authentication is handled in-app
    serverConfig: {
    timeout: 5000,
    },
    });

    Example 2:

    const tokens = forgerock.TokenManager.getTokens({
    forceRenew: false, // Will immediately return stored tokens, if they exist
    login: 'redirect', // If user authentication is handled in external Web app
    });

    Example 3:

    const tokens = forgerock.TokenManager.getTokens({
    query: {
    code: 'lFJQYdoQG1u7nUm8 ... ', // Authorization code from redirect URL
    state: 'MTY2NDkxNTQ2Nde3D ... ', // State from redirect URL
    },
    });

    Example 4:

    const tokens = forgerock.TokenManager.getTokens({
    skipBackgroundRequest: true, // OPTIONAL; this will skip the iframe request to silently get tokens w/o redirect
    });