User Creation Flows

In this document, learn the different ways to create a user using the User Module.

Looking for no-code docs? Refer to this Medusa Admin User Guide to learn how to manage users using the dashboard.

Straightforward User Creation#

To create a user, use the createUsers method of the User Module’s main service:

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

You can pair this with the Auth Module to allow the user to authenticate, as explained in a later section.


Invite Users#

To create a user, you can create an invite for them using the createInvites method of the User Module's main service:

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

Later, you can accept the invite and create a new user for them:

Code
const invite =
  await userModuleService.validateInviteToken("secret_123")

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

const user = await userModuleService.createUsers({
  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:

Code
await userModuleService.refreshInviteTokens(["invite_123"])

Create Identity with the Auth Module#

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 AuthIdentity object, you can use it to create a user if it doesn’t exist:

Code
const { success, authIdentity } =
  await authModuleService.authenticate("emailpass", {
    // ...
  })

const [, count] = await userModuleService.listAndCountUsers({
  email: authIdentity.entity_id,
})

if (!count) {
  const user = await userModuleService.createUsers({
    email: authIdentity.entity_id,
  })
}
Was this page helpful?
Ask Bloom
For assistance in your development, use Claude Code Plugins or Docs MCP server in Cursor, VSCode, etc...FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break
⇧↵