@auth0/auth0-spa-js
Version:
Auth0 SDK for Single Page Applications using Authorization Code Grant Flow with PKCE
54 lines (53 loc) • 2.43 kB
TypeScript
import type { AnonymousSessionClient, AnonymousSession, CreateAnonymousSessionOptions, GetAnonymousAccessTokenOptions } from '@auth0/auth0-auth-js';
import type { ILockManager } from '../lock';
export type AnonymousGetTokenSilentlyOptions = Omit<GetAnonymousAccessTokenOptions, 'sessionToken'>;
export type AnonymousTokenResult = {
accessToken: string;
expiresAt: number;
scope?: string;
};
/**
* Browser-layer wrapper around auth0-auth-js `AnonymousSessionClient`.
*
* Adds local session storage (localStorage or memory) so callers never need to
* manage the session token themselves. `getTokenSilently()` returns a cached
* access token when still valid and renews it transparently when expired.
*
* The session token is stored once and shared across all audience/scope slots.
* Each slot stores only its own access token and expiry.
*
* Exposed on `Auth0Client` as `auth0.anonymous`.
*/
export declare class AnonymousSessionApiClient {
private authJsClient;
private readonly cache;
private readonly lockManager;
private readonly clientId;
constructor(authJsClient: AnonymousSessionClient, clientId: string, cacheMode?: 'localStorage' | 'memory', lockManager?: ILockManager);
/**
* Creates a new anonymous session and persists the tokens locally.
*/
createSession(options?: CreateAnonymousSessionOptions): Promise<AnonymousSession>;
/**
* Returns a valid anonymous access token, creating or renewing the session as needed.
*
* If the stored access token is still fresh (more than 60 s remaining), it is
* returned directly without a network call. Otherwise the session token is used
* to re-mint the access token. If the session token has also expired, auth0-auth-js
* silently creates a fresh identity (any previously set metadata is lost).
*/
getTokenSilently(options?: AnonymousGetTokenSilentlyOptions): Promise<AnonymousTokenResult>;
/**
* Ends the anonymous session and clears all locally stored tokens.
*/
logout(): Promise<void>;
/**
* Returns true if a session token exists in the local cache.
*/
hasSession(): boolean;
/**
* Always returns `null` in EA — session tokens are issued as opaque JWEs and
* cannot be decoded client-side. Reserved for future JWT format support.
*/
getClaims(): null;
}