Decide whether passkeys fit the service

Passkeys can reduce reliance on memorised passwords and phishing-prone sign-in steps, but a small business should begin with the customer journey rather than an authentication slogan. What do customers actually do after login: view an order, change a delivery address, download sensitive documents or approve a payment? How often do they sign in, and on which devices? If the site currently uses passwords plus one-time codes, an optional passkey can be introduced at a point where a customer is already strongly authenticated. FIDO guidance describes passkeys as service-specific credentials whose private keys stay with the user's device or passkey provider while the service stores a public key. The design still needs secure sessions, sound account changes and a workable way to handle customers who cannot use a passkey today.

The customer-facing promise should be narrow and true: an easier way to sign in on compatible devices, with the operating system or provider helping the customer approve use. Do not promise that every passkey is backed up, that every device has a biometric sensor, or that a successful biometric prompt proves a particular person's legal identity. A device PIN or password can also satisfy local user verification. The service must decide what level of verification it requires and check the actual result on its server. Keep the vocabulary plain in both site languages, explain that anyone who can unlock a shared device may be able to use a passkey saved there, and give customers a way to decline or postpone enrollment.

A sensible first release is a limited, optional pilot for an existing account population rather than a forced conversion of every login. Choose representative people: frequent and occasional users, iPhone and Android owners, desktop users, and customers who share a family computer. FIDO recommends segmenting a pilot and monitoring use before broad migration. Define what you will observe locally, such as enrollment completion, sign-in success, use of an alternative method and support contacts. Do not invent an expected success rate or claim that the business has measured one. The purpose of the pilot is to find confusing prompts, unsupported device combinations and support needs before a high-stakes action depends on the new flow.

Make enrollment an account decision

A new passkey grants another route into an existing account. Ask for recent, sufficiently strong authentication before offering the action; do not let possession of a stale browser tab alone authorise it. Show the account being updated, let the customer confirm, and then associate the returned credential ID and public key with that exact account on the server. Passkeys.dev's bootstrapping guidance places the opt-in after strong authentication and checks platform support before inviting enrollment. The specific browser interface will vary across operating systems, so the site should explain the goal, not mimic a single device's dialog. If a user cancels, leave the old sign-in working and show a calm, accurate result rather than pretending setup succeeded.

The server verification is the security boundary. WebAuthn's specification requires a relying party to validate the origin in client data and reject unexpected values. The implementation must also use fresh challenges, bind the response to the intended operation and account, and validate the credential and user-verification result according to its policy. These checks belong in maintained authentication code and review, not in a marketing page's JavaScript or a screenshot of a successful prompt. A small business buying an identity service should request evidence of these controls and its supported domain configuration. If the site has both an English and Chinese frontend, the account identity and allowed origins must still be defined coherently; a translated label cannot compensate for a mismatched relying-party configuration.

After enrollment, give the customer a comprehensible place to see and remove passkeys associated with the account. A label such as a device or provider name can help, but avoid claiming that a label proves which physical device currently holds a synced credential. For sensitive changes such as deleting the last sign-in method, require appropriate reauthentication and explain the consequence before applying it. Tell the customer when a passkey was added or removed through a trusted account notification route, while avoiding details that would expose secret material. Support staff should have a written procedure for disputed changes and should not be able to add a new passkey merely because someone knows a customer's email address.

Test sign-in and fallback paths

Test an ordinary return visit, a fresh browser, a different phone and a laptop borrowing a phone's passkey. Some providers sync credentials across devices; others are device-bound, and cross-device authentication may also be available. Those are different paths, so the help text should describe choices the user can see rather than assume every credential appears everywhere. Passkeys.dev describes cross-device use and suggests offering a local passkey afterward when appropriate. A customer who dismisses the platform prompt should be able to find another sign-in method if the account still has one. The alternative must be visible and usable with keyboard and assistive technology, not hidden behind a device-specific gesture.

Passkey availability and account recovery are related but not identical. A synced passkey may survive device replacement through its provider, while a device-bound credential may require a backup authenticator or another recovery route. FIDO warns that a weak recovery process can undermine stronger login, and recommends risk-based design. The business must decide who can verify a customer, which evidence is sufficient for the account's sensitivity, and how to prevent a replaced or disputed credential from remaining usable. These are policy decisions to settle before making passkeys mandatory. This article addresses the rollout decision; a full lost-account recovery procedure deserves its own operational design and testing.

Consider a small booking service whose customers sometimes sign in once every few months. It offers an optional passkey only after a successful existing login, clearly identifies the booking account, and lets the customer decline. A pilot customer registers on a personal phone, later signs in on a work laptop using the phone, and can still select the existing method if the prompt fails. The service checks the server-side origin and challenge verification, records the enrollment and sign-in outcomes, and tests what happens when the phone is lost. This is a worked design scenario, not a measured result or a promise that one provider will behave identically. The owner's release decision rests on observed pilot completion, support readiness and a reviewed recovery path.

Support teams need a decision tree for ordinary failures, not just attackers. A customer may start registration, dismiss a system dialog, and return believing the passkey exists. The account page should show only credentials confirmed by the server, while the completion message must say plainly whether setup succeeded. Another customer may have a passkey in one provider but choose another provider on a new phone; support should first guide them through available sign-in options, not immediately reset the account. Staff should never ask for device PINs, biometric data or secret recovery material. Escalation should follow account risk and documented evidence, with a clear record of who authorised a credential change. This makes a support call less likely to become an unintended account takeover route.

Before release, write acceptance cases from the customer's point of view. Can a person sign in without creating a passkey? Can they add one after strong authentication, cancel halfway, then retry? Can they use a different device, remove an old credential and still access the account? Can they understand English and Traditional Chinese prompts with a keyboard and screen reader? Pair those user checks with server review of origin, challenge and policy validation. Record the exact devices and browser versions in the pilot because platform behaviour changes over time. A successful prompt on one employee's phone is useful evidence for that one case; it is not proof that the whole customer base can switch. Expand only when both the user flow and support route are ready, and keep a way to pause invitations if a defect emerges.

Before release

  • Is enrollment tied to a recently verified account?
  • Does the server check origin, challenge and credential policy?
  • Can customers understand and use a tested fallback?

Sources & further reading