Registration lets you control which users have access to which applications in a tenant (authorization), in contrast to authenticating a user. Learn more about these concepts.

You have a number of options for registering users.

Self-service Registration

You can enable self-service registration, which lets users create accounts without any interaction from your team. There are two kinds of self-service registration:

  • Basic, which is included in the community plan and lets you capture a limited number of fields on one page
  • Advanced, which requires a paid plan and lets you capture unlimited fields on multiple pages

If any user in a tenant logs into any application with self-service registration enabled, they will automatically have a registration created for that application.

Federation Using Identity Providers

If you allow users to log in to an Application with an Identity Provider, you can register the user at the time of login. This is controlled using the createRegistration attribute on the Identity Provider.

Using The APIs

You can register users using the User Registration APIs. There’s a guide here.

This is a good choice if you want to embed registration into your application and don’t want to use the FusionAuth hosted login pages. The hosted login pages offer pre-built workflows, but if you need custom workflows, the APIs will allow you maximum flexibility.

Special Situations

Anonymous Users

You capture data about anonymous users using the User APIs. There’s a guide here walking through the use case in detail.

This is helpful when you want to avoid account creation to minimize friction, but still allow users to customize their experience.

Progressive Registration

You can also implement progressive registration with FusionAuth. In this case, you’d use one of the above options to collect minimal user profile data to get users into your application with as little friction as possible.

Then, you’d use the User APIs or User Registration APIs along with custom screens in your application to collect additional information.