Skip to main content
Skip to main content

User Creation Flows

This document provides some possible flows to create a user.

Using the Auth Module

The Auth Module allows you to create a user with different providers, such as creating a user with an email and password or creating a user using their Google account.

Learn more about this creation flow in this Auth Module guide.


Invite Users

Another possible flow to create a user is by sending them an invite. Then, once they accept it, you create a new user for them:

// create invite
const invite = await userModuleService.createInvites({
email: "user@example.com",
})

// later, accept invite and create user
const invite =
await userModuleService.validateInviteToken("secret123")

await userModuleService.updateInvites({
id: invite.id,
accepted: true,
})

const user = await userModuleService.create({
email: invite.email,
})

Invite Expiry

An invite has an expiry date. You can renew the expiry date and refresh the token using the refreshInviteTokens method:

await userModuleService.refreshInviteTokens(["invite_123"])

Straightforward Creation

Finally, you can create a user using the create method of the User Module’s main service (IUserModuleService):

const user = await userModuleService.create({
email: "user@example.com",
})

However, the User Module doesn’t handle authentication methods or store a user’s password. For that, you’d need to use the Auth Module.

Was this section helpful?