UNPKG

@auth0/auth0-vue

Version:

Auth0 SDK for Vue Applications using Authorization Code Grant Flow with PKCE

167 lines (153 loc) 5.28 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import type { User, IdToken, PopupLoginOptions, PopupConfigOptions, RedirectLoginResult, GetTokenSilentlyOptions, GetTokenSilentlyVerboseResponse, GetTokenWithPopupOptions } from '@auth0/auth0-spa-js'; import type { Ref } from 'vue'; import type { AppState } from './app-state'; import type { LogoutOptions, RedirectLoginOptions } from './auth0-vue-client-options'; export interface Auth0VueClient { /** * The loading state of the SDK, `true` if the SDK is still processing the PKCE flow, `false` if the SDK has finished processing the PKCE flow. */ isLoading: Ref<boolean>; /** * The authentication state, `true` if the user is authenticated, `false` if not. */ isAuthenticated: Ref<boolean>; /** * Contains the information of the user if available. */ user: Ref<User | undefined>; /** * Contains all claims from the id_token if available. */ idTokenClaims: Ref<IdToken | undefined>; /** * Contains an error that occured in the SDK */ error: Ref<any>; /** * ```js * try { * await loginWithPopup(options); * } catch(e) { * if (e instanceof PopupCancelledError) { * // Popup was closed before login completed * } * } * ``` * * Opens a popup with the `/authorize` URL using the parameters * provided as arguments. Random and secure `state` and `nonce` * parameters will be auto-generated. If the response is successful, * results will be valid according to their expiration times. * * IMPORTANT: This method has to be called from an event handler * that was started by the user like a button click, for example, * otherwise the popup will be blocked in most browsers. * * @param options * @param config */ loginWithPopup( options?: PopupLoginOptions, config?: PopupConfigOptions ): Promise<void>; /** * ```js * await loginWithRedirect(options); * ``` * * Performs a redirect to `/authorize` using the parameters * provided as arguments. Random and secure `state` and `nonce` * parameters will be auto-generated. * * @param options */ loginWithRedirect(options?: RedirectLoginOptions<AppState>): Promise<void>; /** * After the browser redirects back to the callback page, * call `handleRedirectCallback` to handle success and error * responses from Auth0. If the response is successful, results * will be valid according to their expiration times. * * **Note:** The Auth0-Vue SDK handles this for you, unless you set `skipRedirectCallback` to true. * In that case, be sure to explicitly call `handleRedirectCallback` yourself. */ handleRedirectCallback(url?: string): Promise<RedirectLoginResult<AppState>>; /** * ```js * await checkSession(); * ``` * * Check if the user is logged in using `getTokenSilently`. The difference * with `getTokenSilently` is that this doesn't return a token, but it will * pre-fill the token cache. * * This method also heeds the `auth0.{clientId}.is.authenticated` cookie, as an optimization * to prevent calling Auth0 unnecessarily. If the cookie is not present because * there was no previous login (or it has expired) then tokens will not be refreshed. * * @param options */ checkSession(options?: GetTokenSilentlyOptions): Promise<void>; /** * Fetches a new access token and returns the response from the /oauth/token endpoint, omitting the refresh token. * * @param options */ getAccessTokenSilently( options: GetTokenSilentlyOptions & { detailedResponse: true } ): Promise<GetTokenSilentlyVerboseResponse>; /** * Fetches a new access token and returns it. * * @param options */ getAccessTokenSilently(options?: GetTokenSilentlyOptions): Promise<string>; /** * ```js * const token = await getTokenWithPopup(options); * ``` * Opens a popup with the `/authorize` URL using the parameters * provided as arguments. Random and secure `state` and `nonce` * parameters will be auto-generated. If the response is successful, * results will be valid according to their expiration times. * * @param options * @param config */ getAccessTokenWithPopup( options?: GetTokenWithPopupOptions, config?: PopupConfigOptions ): Promise<string | undefined>; /** * ```js * logout(); * ``` * * Clears the application session and performs a redirect to `/v2/logout`, using * the parameters provided as arguments, to clear the Auth0 session. * * **Note:** If you are using a custom cache, and specifying `localOnly: true`, and you want to perform actions or read state from the SDK immediately after logout, you should `await` the result of calling `logout`. * * If the `federated` option is specified it also clears the Identity Provider session. * If the `localOnly` option is specified, it only clears the application session. * It is invalid to set both the `federated` and `localOnly` options to `true`, * and an error will be thrown if you do. * [Read more about how Logout works at Auth0](https://auth0.com/docs/logout). * * @param options */ logout(options?: LogoutOptions): Promise<void>; }