Skip to main content

Interface: IWebAuthnService

Defined in: src/types/interfaces/webauthn.interface.ts:326

WebAuthn service interface.

Remarks

Provides WebAuthn/FIDO2 passkey support for passwordless authentication.

Example

const webauthn = container.resolve<IWebAuthnService>('IWebAuthnService');

// Registration flow
const challenge = await webauthn.generateRegistrationChallenge(did);
// ... client calls navigator.credentials.create() ...
const credential = await webauthn.verifyRegistration(response);

// Authentication flow
const authChallenge = await webauthn.generateAuthenticationChallenge(did);
// ... client calls navigator.credentials.get() ...
const result = await webauthn.verifyAuthentication(authResponse);

Methods

deleteCredential()

deleteCredential(did, credentialId): Promise<void>

Defined in: src/types/interfaces/webauthn.interface.ts:394

Delete credential.

Parameters

did

DID

User's DID (for ownership verification)

credentialId

string

Credential ID to delete

Returns

Promise<void>

Throws

NotFoundError if credential does not exist

Throws

AuthorizationError if not credential owner


generateAuthenticationChallenge()

generateAuthenticationChallenge(did?): Promise<AuthenticationChallenge>

Defined in: src/types/interfaces/webauthn.interface.ts:361

Generate authentication challenge.

Parameters

did?

DID

User's DID (optional for discoverable credentials)

Returns

Promise<AuthenticationChallenge>

Challenge for client


generateRegistrationChallenge()

generateRegistrationChallenge(did, options?): Promise<RegistrationChallenge>

Defined in: src/types/interfaces/webauthn.interface.ts:336

Generate registration challenge for new credential.

Parameters

did

DID

User's DID

options?

RegistrationOptions

Registration options

Returns

Promise<RegistrationChallenge>

Challenge for client


listCredentials()

listCredentials(did): Promise<readonly WebAuthnCredential[]>

Defined in: src/types/interfaces/webauthn.interface.ts:381

List credentials for user.

Parameters

did

DID

User's DID

Returns

Promise<readonly WebAuthnCredential[]>

Array of credentials


updateCredentialNickname()

updateCredentialNickname(did, credentialId, nickname): Promise<void>

Defined in: src/types/interfaces/webauthn.interface.ts:405

Update credential nickname.

Parameters

did

DID

User's DID

credentialId

string

Credential ID

nickname

string

New nickname

Returns

Promise<void>


verifyAuthentication()

verifyAuthentication(response): Promise<WebAuthnVerificationResult>

Defined in: src/types/interfaces/webauthn.interface.ts:371

Verify authentication response.

Parameters

response

AuthenticationResponse

Authentication response from client

Returns

Promise<WebAuthnVerificationResult>

Verification result with credential


verifyRegistration()

verifyRegistration(response): Promise<WebAuthnCredential>

Defined in: src/types/interfaces/webauthn.interface.ts:351

Verify registration response and store credential.

Parameters

response

RegistrationResponse

Registration response from client

Returns

Promise<WebAuthnCredential>

Stored credential

Throws

WebAuthnError if verification fails