UNPKG

@leancodepl/kratos

Version:

Headless React components library for building Ory Kratos authentication flows

63 lines 3.25 kB
import { ComponentType } from 'react'; import { OidcProvidersConfig } from '../../utils'; import { EmailVerificationFormProps } from '../verification'; import { ChooseMethodFormProps } from './chooseMethodForm'; import { SecondFactorEmailFormProps } from './secondFactorEmailForm'; import { SecondFactorFormProps } from './secondFactorForm'; import { OnLoginFlowError } from './types'; export type LoginFlowProps<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = { loaderComponent?: ComponentType; chooseMethodForm: ComponentType<ChooseMethodFormProps<TOidcProvidersConfig>>; secondFactorForm: ComponentType<SecondFactorFormProps>; secondFactorEmailForm: ComponentType<SecondFactorEmailFormProps>; emailVerificationForm: ComponentType<EmailVerificationFormProps>; oidcProvidersConfig?: TOidcProvidersConfig; initialFlowId?: string; returnTo?: string; onError?: OnLoginFlowError; onLoginSuccess?: () => void; onVerificationSuccess?: () => void; onFlowRestart?: () => void; onSessionAlreadyAvailable?: () => void; }; /** * Renders a complete login flow with multi-step authentication support. * * Handles login method selection, second-factor authentication, email verification, * and session management. Provides context for managing flow state and transitions * between different authentication steps. * * @param props - Configuration and component props for the login flow * @param props.loaderComponent - Optional component to display during loading states * @param props.chooseMethodForm - React component for login method selection * @param props.secondFactorForm - React component for second factor authentication * @param props.secondFactorEmailForm - React component for email-based second factor * @param props.emailVerificationForm - React component for email verification process * @param props.initialFlowId - Optional existing login flow ID to resume * @param props.returnTo - Optional URL to redirect after successful login * @param props.onError - Optional callback for handling login flow errors * @param props.onLoginSuccess - Optional callback triggered after successful login * @param props.onVerificationSuccess - Optional callback triggered after email verification * @param props.onFlowRestart - Optional callback triggered when flow restarts due to expiration * @param props.onSessionAlreadyAvailable - Optional callback triggered when user is already authenticated * @returns JSX element containing the complete login flow interface * @example * ```tsx * import { LoginFlow } from '@leancodepl/kratos'; * * function App() { * return ( * <LoginFlow * chooseMethodForm={ChooseMethodForm} * secondFactorForm={SecondFactorForm} * secondFactorEmailForm={SecondFactorEmailForm} * emailVerificationForm={EmailVerificationForm} * onLoginSuccess={() => navigate('/dashboard')} * onSessionAlreadyAvailable={() => navigate('/dashboard')} * /> * ); * } * ``` */ export declare function LoginFlow<TOidcProvidersConfig extends OidcProvidersConfig = readonly []>(props: LoginFlowProps<TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=loginFlow.d.ts.map