WebAuthn Options Explainer
Explains each PublicKeyCredentialCreationOptions field (attachment, userVerification, residentKey) for developers.
—
The three options that decide whether your WebAuthn is a passkey or a second factor
When calling navigator.credentials.create, three fields define login behaviour, and the combination between them is what separates a real passkey from an ordinary second factor. Getting this wrong produces a system that appears to work but does not do what you pictured — usually still demanding a password forever, when the point was to remove it.
authenticatorAttachment picks the kind of authenticator: platform accepts only what is built into the device, such as Touch ID and Windows Hello; cross-platform accepts only external keys such as a YubiKey; omitting it accepts both. userVerification decides whether the authenticator must confirm who is present, via biometrics or a PIN, or whether detecting presence is enough. residentKey decides whether the credential is stored on the authenticator with its own identifier — which is what allows signing in without typing a username.
Pick the three options and the page explains each choice and delivers the verdict: with userVerification required and residentKey required, you have a passwordless setup; in any other combination it is classic 2FA and the password is still needed. Worth noting that a required residentKey consumes storage on the authenticator — older security keys hold only a few dozen credentials.
Frequently asked questions
Are passkeys and WebAuthn the same thing?
Should I set userVerification to required?
Does the server need to store the public key?
Related Tools
JWT Claims Explainer
Lists all RFC 7519 registered claims (iss, sub, aud, exp, nbf, iat, jti) with descriptions and basic validation.
CORS Config Validator
Validate a CORS configuration (allowed origins or *), checking the format and duplicates. Useful for safely configuring APIs and web servers.
TOTP vs HOTP Comparison
Compares TOTP and HOTP characteristics in a table and shows how each derives the one-time code.
Password Generator
Generate strong, random passwords with custom length, uppercase letters, numbers and symbols. Generated in the browser — no data leaves your device.
TOTP otpauth URI Builder
Builds an otpauth://totp/ URI with issuer, account, base32 secret, digits and period for QR code apps.
Referrer-Policy Builder
Builds the Referrer-Policy header from a standard value (strict-origin, no-referrer, etc.).