Skip to content

Passkey (WebAuthn) Authentication #23

Description

@fabyo0

Description

Implement passwordless authentication using Passkeys (WebAuthn) for secure and convenient login experience.

Features

  • Passkey registration (biometric/device)
  • Login with passkey (no password needed)
  • Multiple passkeys per user
  • Passkey management (list, rename, delete)
  • Fallback to password login
  • Device/browser compatibility check
  • QR code for cross-device registration (optional)

Technical Stack

  • web-auth/webauthn-symfony-bundle or laragear/webauthn
  • WebAuthn API (Browser native)
  • Laravel Fortify integration
  • Filament form components

User Flow

  1. User registers with email/password
  2. System prompts: "Add passkey for faster login?"
  3. User creates passkey (fingerprint/face/PIN)
  4. Next login: Click "Login with Passkey" → Instant access

Passkey Management

  • View registered passkeys
  • Rename passkeys ("iPhone 15", "Work Laptop")
  • Delete passkeys
  • Last used timestamp

Security Features

  • Device attestation
  • User verification required
  • Challenge-response authentication
  • No password stored on server

Browser Support

  • Chrome/Edge 67+
  • Safari 14+
  • Firefox 60+
  • Mobile browsers (iOS 16+, Android 9+)

Acceptance Criteria

  • Passkey registration flow
  • Login with passkey
  • Passkey management page
  • Fallback to password login
  • Browser compatibility detection
  • Multi-passkey support per user
  • Admin panel to view user passkeys
  • Email notification on new passkey added

Optional Features

  • QR code for cross-device setup
  • Conditional UI (show passkey option if available)
  • Backup authentication methods
  • Passkey sync across devices (platform-dependent)

Priority

🟢 Low (Nice to have, but not critical)

Estimated Time

4-5 days

Related Issues

Documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions