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