User Creation with Auth Module
In this document, you’ll learn about the user-creation flow and how to use it with the User Module.
Auth User Creation in Authentication Flow
In the Auth Provider documentation, you learned about the authentication flows supported by the Auth Module. These flows are used when an AuthUser
is already available for the specified authentication data, such as email/password credentials.
However, the emailpass
and google
providers support creating an AuthUser
if none exists. If an email is provided that doesn’t have an AuthUser
associated with it (checked via its entity_id
attribute) for the specified provider (checked via its provider
attribute), a new AuthUser
is created for that email and provider.
So, by default, your authentication flow supports both sign-in and sign-up flows.
This step actually occurs at different points of the authentication flow for each of the providers. For the emailpass
provider, it occurs before checking that the password is correct. For the google
provider, you must go through the full authentication flow to retrieve the user details, such as email, from Google.
Creating a User in the User Module
The User Module provides user and invite management functionalities. However, it doesn’t provide authentication functionalities or store any related data.
By combining the User and Auth Modules, you can use the Auth Module for authenticating users, and the User Module to manage those users.
So, when a user is authenticated, and you receive the AuthUser
object, you can use it to create a user if it doesn’t exist: