Try Demo
Talk to Adoption Engineer
Whitepaper
1. Introduction
CorbadoConnectAppend is used after a user has been authenticated (e.g., they’ve just logged in with a password or have an active session). Its role is to guide the user through creating (or “appending”) a passkey to their account if the user and their device meet the eligibility requirements.
2. When to Use This Component
This component should be loaded on any page that is shown to a user immediately after they have successfully logged in, such as a dashboard or a dedicated welcome page.3. Rendering Logic
The component is not always visible. Before rendering its UI, it performs two critical checks. If either check fails, the component will not render, and theonSkip callback will be triggered.
- Initial Check (Gradual Rollout): It first determines if the current user should be offered the option to create a passkey. This is controlled by the Gradual Rollout feature, which allows you to enable passkey creation for specific user segments.
- Device Suitability (Passkey Intelligence): It checks if creating a passkey on the current device makes sense. This is determined by Passkey Intelligence, which assesses factors like browser support and whether the user already has a passkey on the device. In web environments, it can also detect many password managers and skip the offer if a detected manager is excluded by your Authenticator Policy. This avoids showing the passkey enrollment screen and a likely decline after creation;
onSkipreceivesskip-implicit. - User Confirmation (Explainer): If the above checks pass, it shows an “explainer” screen. This screen informs the user about the benefits of passkeys and asks for their consent before proceeding. The content of this screen can be customized.
- Passkey Creation: Once the user agrees, the component initiates the WebAuthn API. The selected provider creates and may save the passkey locally.
- Enrollment Acceptance: Corbado validates the registration and evaluates any configured Authenticator Policy before accepting the credential for future login. An accepted enrollment reaches the success screen. A policy decline opens the supported-alternatives screen described below.
4. User Experience
When the component is visible, it provides a clear call-to-action inviting the user to create a passkey for faster, more secure logins. Once rendered, the user has three possible interactions:- Create a Passkey: The user can start the native browser flow to create and save a passkey.
- Skip for Now: The user can dismiss the prompt.
- Learn More: The user can view additional information about what passkeys are.
5. Errors and Enrollment Declines
If a technical issue occurs during passkey creation or the user closes the browser prompt, the component explains the result and offers a retry where appropriate. An enrollment declined by policy has a separate recovery path.5.1 Enrollment declined by policy
When the returned credential does not meet your Authenticator Policy, the component explains that it has not been added to the account and offers supported providers. For example:Choose another passkey provider This provider does not meet the passkey requirements for your account. Create a passkey with one of the supported providers below. Your current sign-in remains active.The user can choose to try again with a supported provider or continue without adding a passkey. The component supplies guidance for choosing another provider in the browser or operating-system prompt; it cannot silently change the user’s default manager. Continuing preserves the existing application session. The declined credential is not accepted for future login. It may still exist in the credential manager, which can offer it at a later login. The component provides instructions to remove that entry and uses cleanup signals where supported. Provider support varies, so automatic removal is not guaranteed.
5.2 Integration outcomes
Treat local creation and accepted enrollment as separate events:- Accepted enrollment:
onCompletereports successful completion. Show your success UI only after the component confirms the result. - Policy decline: The component keeps the user in the enrollment flow and reports a diagnostic code through
onError. It does not callonCompletefor the declined credential. Track the policy outcome separately from technical errors. - Retry: The component starts another attempt after the user chooses to retry. A later accepted attempt can complete normally.
- Continue without enrollment:
onSkiplets your application continue its authenticated journey when the user dismisses the offer, including after a decline.
6. Example
Important: Only authenticated users are allowed to create new passkeys. You must generate a connect token on your backend to validate that the user session is legitimate. This token is then passed to the component.
7. Available Configuration Parameters
The callback types below describe the SDK integration contract. See the Web SDK for installation.AppendStatus is the union skip-implicit, skip-explicit, complete and complete-noop. Keep skips and no-op completions separate from new credential creation in your own analytics.
8. Customization
You can customize the component’s appearance to match your application’s design in two ways:8.1 Through CSS Theme Variables
The easiest way to change colors, fonts, and border-radius is by overriding our CSS theme variables. You can set these in a:root block in your stylesheet.
8.2 Through CSS Classes
For more detailed changes, you can directly target the component’s CSS classes. All classes are scoped under the.cb-connect-container to avoid conflicts.
8.2.1 Shared CSS Classes
These classes are used across multiple Corbado Connect components.8.2.2 Component Specific CSS Classes
These classes are specific to theCorbadoConnectAppend component.