UNPKG

@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
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; }