Skip to main content

Two-step registration

Identity traits are data associated with an identity that can be modified by the user. The traits are configured through the identity schema.

With unified registration - formerly called one-step legacy registration - the identity traits will be repeated for each authentication strategy. For example the identity traits will be repeated for the password, the code via email, and the passkey method. For this reason unified registration is recommended for use cases where you have only one or two authentication methods enabled.

With a profile-first registration - formerly called two-step registration - the user is prompted for the identity traits in the first step, and asked to choose a credential method for authentication next. This results in a more stream-lined user experience when you have more than two authentication methods enabled.

To disable the one-step unified registration, Go to Project settingsAdvanced in the Ory Console and disable Enable unified sign up.

One-step registration (enable_legacy_one_step)

The boolean selfservice.flows.registration.enable_legacy_one_step is replaced by the string option selfservice.flows.registration.style, which accepts unified (one-step) or profile_first (two-step). The default is profile_first, so new projects use two-step registration, where users provide their profile information first and their credentials second.

Am I affected?

You are affected if any of the following apply:

  • Your configuration sets selfservice.flows.registration.enable_legacy_one_step.
  • Your Kratos logs contain the warning Found use of deprecated configuration key "selfservice.flows.registration.enable_legacy_one_step".
  • You have a custom registration UI that assumes a single combined registration form.

If you do not set enable_legacy_one_step and use the default registration UI, you are not affected.

Why was this change made?

A single boolean could not express the growing set of registration layouts. The style enum replaces it and leaves room for additional styles. Two-step registration (profile_first) became the default because it produces a clearer experience when multiple credential methods (password, passkey, code) are enabled.

How to adapt to this change?

Remove enable_legacy_one_step and set style explicitly. Use unified to keep one-step registration, or profile_first to adopt the two-step default. If you operate a custom registration UI, verify it renders correctly for the style you choose — two-step registration renders profile fields and credential fields on separate screens with a "back" navigation node.

# Before
selfservice:
flows:
registration:
enable_legacy_one_step: true

# After (keep one-step behavior)
selfservice:
flows:
registration:
style: unified

In Project settingsAdvanced in the Ory Console, review your registration configuration and set the registration style to unified or profile_first instead of relying on enable_legacy_one_step. Test the registration flow with your UI before rolling the change out.