Proof of Concept for Handle Pay's passkey-based onboarding system.
- Usecase selection
- Username validation & reservation
- TTL-based reservation system (30 minutes)
- WebAuthn passkey registration
- Biometric login (Face ID, Touch ID, Windows Hello)
- JWT-based session management
- Frontend: Next.js 14, React, TailwindCSS
- Authentication: @simplewebauthn/browser
- Backend API: NestJS (separate repository)
- Install dependencies:
npm install- Configure environment:
Create
.env.local:
NEXT_PUBLIC_API_URL=http://localhost:3001/api/v1- Run development server:
npm run dev- Open browser:
http://localhost:3002
- Navigate to
/phase1/onboarding - Select a usecase
- Check username availability
- Reserve username and save the token
- Navigate to
/phase2/passkey-test - Enter reservation token from Phase 1
- Create passkey with biometric authentication
- Test login with existing passkey
Note: Passkeys work best with HTTPS. For local testing, use browser's built-in authenticator (not password managers like Proton Pass).
vercel --prodSet environment variable:
NEXT_PUBLIC_API_URL: Your backend API URL
This PoC requires the Handle Pay backend running. See main repository for backend setup.
Private - Handle Pay Project