Recommended stack
@simplewebauthn/server@simplewebauthn/browserbetter-auth or lucia-auth if you want passkeys inside a broader auth systemimport { generateRegistrationOptions, verifyRegistrationResponse } from '@simplewebauthn/server';
Why libraries matter
Why email OTP works well
Why not SMS or 6-digit authenticator codes