User Registration
The Symfony UX WebAuthn package provides Stimulus controllers to simplify the registration of new authenticators. This page explains how to register a new user with WebAuthn or add authenticators to an existing user account.
New User Registration
When registering a new user, you need to collect basic information (username, display name) and then register their first authenticator.
Registration Form
Your registration form needs:
A username field for the user's identifier
A display name field (optional, can default to username)
A hidden field for the attestation response
<form
action="{{ path('app_register') }}"
method="post"
{{ stimulus_controller('@web-auth/webauthn-stimulus',
{
creationOptionsUrl: path('webauthn.controller.creation.creation.new_user'),
creationResultField: 'input[name="attestation"]'
}
) }}
>
<label for="username">Username</label>
<input
type="text"
id="username"
name="username"
required
autocomplete="username webauthn"
>
<label for="displayName">Display Name</label>
<input
type="text"
id="displayName"
name="displayName"
placeholder="John Doe"
>
<input type="hidden" id="attestation" name="attestation">
<button
type="submit"
{{ stimulus_action('@web-auth/webauthn-stimulus', 'register') }}
>
Register with Passkey
</button>
</form>Bundle Configuration
Configure the bundle to handle new user registration:
User Entity Guesser
Create a guesser to handle new user registration:
Adding Authenticators to Existing Users
Existing users can register additional authenticators (backup keys, different devices).
Add Authenticator Form
Configuration for Existing Users
The CurrentUserEntityGuesser automatically retrieves the currently authenticated user from the Symfony security context. No custom guesser needed!
Stimulus Controller Options
The registration controller accepts the following options:
creationOptionsUrl
string
Yes
URL to fetch credential creation options
creationResultField
string
Yes
CSS selector for the hidden attestation field
autoRegister
boolean
No
Automatically trigger registration on page load (default: false)
Auto-Register Example
Automatically start the registration process when the page loads:
Use autoRegister carefully as it immediately prompts the user for biometric authentication or security key interaction.
Error Handling
Handle registration errors in your custom event listeners:
See Also
User Authentication - Authenticate users with registered authenticators
Additional Authenticators - Manage multiple authenticators
Bundle Configuration - Complete configuration reference
Last updated
Was this helpful?