Pre-built UI
Fastest to implement. Hosted UI with customization options.
Custom UI
Full control over user experience using Client SDKs.
Security Note: If users already have enrolled authenticators, enrolling additional methods requires strong authenticator binding to prevent MFA bypass attacks.
Using the pre-built UI
The Authsignal pre-built UI provides a complete enrollment experience with minimal integration effort.First-time enrollment
When users have no existing authenticators, they can enroll their first method directly. Backend: Generate enrollment URLFirst-time enrollment with email OTP
Check enrollment status using Get User or Get Authenticators to customize your UI based on whether users are enrolled.
Adding additional authenticators
Users can enroll additional methods through the pre-built UI by first completing a challenge with one of their existing methods. We can add theredirectToSettings
attribute to the track request to land the user on a screen after their challenge which will let them enroll more methods.
Adding a passkey after email OTP verification
This security requirement ensures strong binding between authenticators, preventing attackers from adding new methods if they compromise a single factor.
Enrolling email and SMS authenticators
By default Authsignal’s pre-built UI requires users to enter their email address or phone number when enrolling an email or SMS-based authenticator.
Capturing a user's email address to enroll an OTP authenticator
Using Client SDKs
Client SDKs offer complete control over the enrollment experience, ideal for native mobile apps or custom web interfaces.First-time enrollment flow
1. Backend: Generate enrollment tokenAdding additional authenticators
1. Backend: Generate token with additional scopeThe
"add:authenticators"
scope should only be granted after the user has been strongly authenticated.Alternative enrollment methods
Programmatic enrollment
For users whose email/phone is already verified in your system, you can enroll them directly without requiring user interaction:EMAIL_OTP
- Email-based one-time passwordsEMAIL_MAGIC_LINK
- Email magic linksSMS
- SMS-based one-time passwords
This method assumes verification has already occurred and doesn’t send verification messages. Only use this if you’ve verified the user’s contact information in your own system.
Learn more about programmatic authenticator management.