Passkey authentication is different to what most developers are used to:
Passkey creation can occur either during the registration of a new user account or when an authenticated creates a passkey for their existing account within the profile settings. This process is initiated by the client, e.g. via "Create a passkey" button, and unfolds in three steps:
credentials.create(challenge)
, which generates a key pair (private / public) on the device (authenticator). The private key signs the challenge and is securely stored on the device within the hardware security module (HSM) like a TPM or secure enclave. The function returns the public key, credential ID, and signed challenge, with user verification via biometrics or PIN.Unlike passwords, passkeys stay on the user's device and generate a unique cryptographic signature for sign-in demonstrating to the server that it was generated with the correct passkey. The user starts passkey authentication on the client side.
credentials.get(challenge)
, the client prompts user verification via biometrics or PIN, then uses the stored passkey to sign the challenge. The function returns the signed challenge, username, and credential ID associated with the passkey.Read in-depth articles about important passkey concepts.
Conditional UI displays available passkeys to the user without requiring a username.
View DetailsDiscoverable credentials (resident keys) can be displayed with Conditional UI.
View DetailsCross-Device Authentication means using a passkey from another device.
View DetailsConditional UI requires an autocomplete token on the respective input fields.
View DetailsRead in-depth articles about important passkey concepts.
Corbado helps you transition your users to passkeys risk-free within <1 hour. Provide the best passwordless login experience now.