UNPKG

@auth0/auth0-spa-js

Version:

Auth0 SDK for Single Page Applications using Authorization Code Grant Flow with PKCE

93 lines (92 loc) 3.41 kB
import { AuthorizationParams } from './global'; import { Fetcher } from './fetcher'; interface ConnectRequest { /** The name of the connection to link the account with (e.g., 'google-oauth2', 'facebook'). */ connection: string; /** The URI to redirect to after the connection process completes. */ redirect_uri: string; /** An opaque value used to maintain state between the request and callback. */ state?: string; /** A string value used to associate a Client session with an ID Token, and to mitigate replay attacks. */ nonce?: string; /** The PKCE code challenge derived from the code verifier. */ code_challenge?: string; /** The method used to derive the code challenge. Required when code_challenge is provided. */ code_challenge_method?: 'S256'; authorization_params?: AuthorizationParams; } interface ConnectResponse { /** The base URI to initiate the account connection flow. */ connect_uri: string; /** The authentication session identifier. */ auth_session: string; /** Parameters to be used with the connect URI. */ connect_params: { /** The ticket identifier to be used with the connection URI. */ ticket: string; }; /** The number of seconds until the ticket expires. */ expires_in: number; } interface CompleteRequest { /** The authentication session identifier */ auth_session: string; /** The authorization code returned from the connect flow */ connect_code: string; /** The redirect URI used in the original request */ redirect_uri: string; /** The PKCE code verifier */ code_verifier?: string; } export interface CompleteResponse { /** The unique identifier of the connected account */ id: string; /** The connection name */ connection: string; /** The access type, always 'offline' */ access_type: 'offline'; /** Array of scopes granted */ scopes?: string[]; /** ISO date string of when the connected account was created */ created_at: string; /** ISO date string of when the refresh token expires (optional) */ expires_at?: string; } export interface ErrorResponse { type: string; status: number; title: string; detail: string; validation_errors?: { detail: string; field?: string; pointer?: string; source?: string; }[]; } /** * Subset of the MyAccount API that handles the connect accounts flow. */ export declare class MyAccountApiClient { private myAccountFetcher; private apiBase; constructor(myAccountFetcher: Fetcher<Response>, apiBase: string); /** * Get a ticket for the connect account flow. */ connectAccount(params: ConnectRequest): Promise<ConnectResponse>; /** * Verify the redirect from the connect account flow and complete the connecting of the account. */ completeAccount(params: CompleteRequest): Promise<CompleteResponse>; private _handleResponse; } export declare class MyAccountApiError extends Error { readonly type: string; readonly status: number; readonly title: string; readonly detail: string; readonly validation_errors?: ErrorResponse['validation_errors']; constructor({ type, status, title, detail, validation_errors }: ErrorResponse); } export {};