UNPKG

@kinde-oss/kinde-auth-react

Version:

Kinde React SDK for authentication

61 lines 2.58 kB
import { UserProfile, RefreshTokenResult, SessionManager } from '@kinde/js-utils'; import { default as React } from 'react'; import { KindeContextProps } from './KindeContext'; import { ErrorProps, PopupOptions, ActivityTimeoutConfig } from './types'; declare enum AuthEvent { login = "login", logout = "logout", register = "register", tokenRefreshed = "tokenRefreshed" } type EventTypes = { (event: AuthEvent.tokenRefreshed, state: RefreshTokenResult, context: KindeContextProps): void; (event: AuthEvent, state: Record<string, unknown>, context: KindeContextProps): void; }; type KindeCallbacks = { onSuccess?: (user: UserProfile, state: Record<string, unknown>, context: KindeContextProps) => void; onError?: (props: ErrorProps, state: Record<string, string>, context: KindeContextProps) => void; onEvent?: EventTypes; }; type KindeProviderProps = { audience?: string; children: React.ReactNode; clientId: string; domain: string; /** * Use localstorage for refresh token. * * Note: This is not recommended for production use, as it is less secure. Use custom domain and refresh token will have handled without localStorage automatically */ useInsecureForRefreshToken?: boolean; logoutUri?: string; redirectUri: string; callbacks?: KindeCallbacks; scope?: string; /** * When true, renders children immediately and actively manages `isLoading` * across init, login, logout, and register flows. * * This allows consumers to: * 1. Access the auth context immediately (no empty render) * 2. Rely on `isLoading` to show loading states during auth operations * * When false (default), children only render after initialization completes. */ forceChildrenRender?: boolean; /** * When the application is shown in an iFrame, auth will open in a popup window. * This is the options for the popup window. */ popupOptions?: PopupOptions; store?: SessionManager; /** * Configuration for activity timeout tracking. * ⚠️ Must be memoized or defined outside component to prevent effect re-runs. */ activityTimeout?: ActivityTimeoutConfig; refreshOnFocus?: boolean; }; export declare const KindeProvider: ({ audience, scope, clientId, children, domain, useInsecureForRefreshToken, redirectUri, callbacks, logoutUri, forceChildrenRender, popupOptions, store, activityTimeout, refreshOnFocus, }: KindeProviderProps) => React.JSX.Element; export {}; //# sourceMappingURL=KindeProvider.d.ts.map