Skip to content
Documentation
Documentation

User Resolvers Overview

A user resolver is a React hook that returns the current user’s { name, email }. MUS uses it to pre-fill the name and email fields in forms and to include user identity in feedback messages.

  1. config.user: explicit override on MusProvider, always wins
  2. config.userResolver: your auth system (Stytch, Clerk, Auth0, NextAuth, or custom)
  3. Stytch auto-detection: if @stytch/react is installed and a session is active, MUS reads it automatically (no configuration needed)
  4. Anonymous fallback { name: 'Anonymous', email: '' }

Import the resolver for your auth system and pass it to MusProvider:

import { stytchResolver } from '@datachef/mus/resolvers/stytch'
<MusProvider config={{
projectName: 'My App',
slack: { ... },
userResolver: stytchResolver(),
}}>

Requires @stytch/react in your project.

import { clerkResolver } from '@datachef/mus/resolvers/clerk'
<MusProvider config={{
...
userResolver: clerkResolver(),
}}>

Requires @clerk/clerk-react in your project.

import { auth0Resolver } from '@datachef/mus/resolvers/auth0'
<MusProvider config={{
...
userResolver: auth0Resolver(),
}}>

Requires @auth0/auth0-react in your project.

import { nextAuthResolver } from '@datachef/mus/resolvers/next-auth'
<MusProvider config={{
...
userResolver: nextAuthResolver(),
}}>

Requires next-auth in your project.

If your app doesn’t use an authentication library, you can still pre-fill user info:

<MusProvider config={{
...
user: {
name: 'Jane Doe',
email: 'jane@example.com',
},
}}>

See Custom Resolvers for a localStorage-based resolver example.

See Custom Resolvers.