Main WebAuthn class for authentication management

Hierarchy

  • EventEmitter
    • Webauthn

Constructors

  • Creates a new WebAuthn instance

    Parameters

    • OptionalgunInstance: IGunInstance<unknown>
    • Optionalconfig: Partial<WebAuthnConfig>

    Returns Webauthn

Properties

abortController: null | AbortController = null
config: WebAuthnConfig
credential: null | WebAuthnCredentialData
gunInstance?: IGunInstance<unknown>

Methods

  • Aborts current authentication attempt

    Returns void

  • Authenticates a user with timeout and abort handling

    Parameters

    • username: string
    • salt: null | string
    • options: WebAuthnOperationOptions = {}

    Returns Promise<CredentialResult>

  • Converts ArrayBuffer to URL-safe base64 string

    Parameters

    • buffer: ArrayBuffer

    Returns string

  • Creates a WebAuthn credential for registration

    Parameters

    • username: string

    Returns Promise<WebAuthnCredentialData>

  • Emits an event with arguments

    Parameters

    • event: EventType
    • Optionaldata: unknown

    Returns boolean

  • Generates a challenge for WebAuthn operations

    Parameters

    • username: string

    Returns Uint8Array

  • Generates credentials from username and salt

    Parameters

    • username: string
    • salt: string

    Returns { password: string }

  • Gets device information

    Parameters

    • credentialId: string

    Returns DeviceInfo

  • Gets platform information

    Returns { name: string; platform: string }

  • Gets cryptographically secure random bytes

    Parameters

    • length: number

    Returns Uint8Array

  • Checks if WebAuthn is supported

    Returns boolean

  • Removes an event listener

    Parameters

    • event: EventType
    • listener: (data: unknown) => void

    Returns void

  • Registers an event listener

    Parameters

    • event: EventType
    • listener: (data: unknown) => void

    Returns void

  • Registers a one-time event listener

    Parameters

    • event: EventType
    • listener: (data: unknown) => void

    Returns void

  • Removes all listeners for an event or all events

    Parameters

    • Optionalevent: EventType

    Returns void

  • Saves credential to GunDB

    Parameters

    • username: string
    • credential: WebAuthnCredentialData

    Returns Promise<void>

  • Signs data with the credential

    Parameters

    • data: Record<string, unknown>

    Returns Promise<unknown>

  • Converts Uint8Array to hexadecimal string

    Parameters

    • arr: Uint8Array

    Returns string

  • Validates a username

    Parameters

    • username: string

    Returns void

  • Verifies a credential

    Parameters

    • username: string

    Returns Promise<WebAuthnVerificationResult>