Skip to main content

Passkey Provider

Package: @nauth-toolkit/mfa-passkey Type: MFA Provider

npm install @nauth-toolkit/mfa-passkey

Exports

ExportTypeEntry
PasskeyMFAProviderServiceServiceDefault
PasskeyServiceServiceDefault
PasskeyMFAModuleNestJS Module/nestjs

Configuration

OptionTypeDescription
rpNamestringRelying party display name
rpIdstringRelying party ID (domain)
originstring[]Allowed origins
timeoutnumberTimeout in milliseconds
userVerificationstring'preferred' | 'required' | 'discouraged'
authenticatorAttachmentstring'platform' | 'cross-platform' — restrict to built-in (FaceID/TouchID) or roaming (security key) authenticators

Usage

import { PasskeyMFAModule } from '@nauth-toolkit/mfa-passkey/nestjs';

@Module({
imports: [
AuthModule.forRoot({
mfa: {
enabled: true,
allowedMethods: [MFAMethod.PASSKEY],
passkey: {
rpName: 'My App',
rpId: 'myapp.com',
origin: ['https://myapp.com'],
timeout: 60000,
userVerification: 'preferred',
},
},
}),
PasskeyMFAModule,
],
})
export class AppModule {}

Setup Flow

  1. Call mfaService.setupDevice(userId, 'passkey')
  2. Returns WebAuthn registration options
  3. Browser creates credential
  4. Submit attestation to complete setup