UNPKG

@passkey-fas/webauthn-sdk

Version:

Official JavaScript SDK for FaS (FIDO2 as Service) Platform - Easy passwordless authentication integration

62 lines (54 loc) 1.94 kB
// TypeScript definitions for React integration import { ReactElement } from 'react'; import { FaSSDKConfig, FaSUser, FaSAuthResult, BrowserSupport } from './index'; export interface UseFaSAuthResult { user: FaSUser | null; loading: boolean; error: string | null; register: (email: string, fullname?: string) => Promise<FaSAuthResult>; login: (email: string) => Promise<FaSAuthResult>; passwordlessLogin: () => Promise<FaSAuthResult>; logout: () => void; isAuthenticated: boolean; isWebAuthnSupported: boolean; } export function useFaSAuth(config: FaSSDKConfig): UseFaSAuthResult; export function useWebAuthnSupport(): BrowserSupport; export interface FaSRegisterProps { clientId: string; clientSecret?: string; apiBase?: string; useProxy?: boolean; // Enable proxy mode onSuccess?: (result: FaSAuthResult) => void; onError?: (error: Error) => void; buttonText?: string; className?: string; disabled?: boolean; } export interface FaSLoginProps { clientId: string; clientSecret?: string; apiBase?: string; useProxy?: boolean; // Enable proxy mode onSuccess?: (result: FaSAuthResult) => void; onError?: (error: Error) => void; buttonText?: string; passwordlessButtonText?: string; showPasswordless?: boolean; className?: string; disabled?: boolean; } export interface FaSWebAuthnSupportProps { supportedText?: string; unsupportedText?: string; loadingText?: string; showDetails?: boolean; className?: string; } export function FaSRegister(props: FaSRegisterProps): ReactElement; export function FaSLogin(props: FaSLoginProps): ReactElement; export function FaSWebAuthnSupport(props: FaSWebAuthnSupportProps): ReactElement; export function withFaSAuth<P extends object>( WrappedComponent: React.ComponentType<P & { auth: UseFaSAuthResult }>, config: FaSSDKConfig ): React.ComponentType<P>;