> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Accessing Users

<Card title="Recommended: JavaScript SDK with React Hooks" icon="react" color="#4779FE">
  For new React apps, we recommend the JavaScript SDK with React Hooks (`@dynamic-labs-sdk/react-hooks`) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the [React quickstart (JavaScript SDK)](/javascript/reference/react-quickstart) to get started.
</Card>

### Overview

When a new user signs up, Dynamic creates a new user record in the database including their general information, and verified credentials. You can access that user via a webhook, or using SDK specific methods.

## User Created Webhook

One of the valid webhook events you can listen to is called `user.created` (learn more about event types [here](http://localhost:3001/developer-dashboard/webhooks/events)).

All you will need to get started is a server that can receive events, and then you can plug in that URL in the dashboard. [Learn more about setting up the webhook step by step here](/overview/developer-dashboard/webhooks#setting-up-webhooks).

## SDK Specific Methods

### handleAuthenticatedUser Handler

<Tip>The args returned by handleAuthenticatedUser is a [UserProfile](/react/reference/objects/userprofile).</Tip>

```tsx React theme={"system"}
<DynamicContextProvider
  settings={{
    handlers: {
      handleAuthenticatedUser: async (args) => {
        console.log("handleBeforeAuth was called", args);
        await customUserObjectProcess(args.user);
      },
    },
  }}
>
  {/* ... rest of your app ... */}
</DynamicContextProvider>
```

## onAuthSuccess Event

The SDK exposes [Events](/react/reference/events/events-introduction) which allow you to hook into lifecycle events. One such event is [`onAuthSuccess`](/react/reference/events/onauthsuccess), which runs when the user has successfully authenticated.

```tsx React theme={"system"}
<DynamicContextProvider
  settings={{
    events: {
      onAuthSuccess: (args) => {
        console.log('user', args.user);
      }
    }
  }}
>
{/* ... rest of your app ... */}
</DynamicContextProvider>
```

## useDynamicContext

Once placed anywhere inside the component tree that is wrapped by the `DynamicContextProvider`, [the `useDynamicContext` hook](/react/reference/hooks/usedynamiccontext) will give you access to the `user` object.

```tsx React theme={"system"}
import { useDynamicContext } from '@dynamic-labs/sdk-react-core';

function MyComponent() {
  const { user } = useDynamicContext();
  console.log('user', user);
  return <div>My Component</div>;
}
```

## User Format

This user record follows a specific format, which you can read all about in the [User](/react/reference/objects/userprofile) reference.

One important array inside that user object will be called `verified_credentials`. This is where you'll find information about any and every associated "credential" for the user i.e. email, social, blockchain, passkey.

<Card title="What next?" href="/react/users/verified-credential" icon="link" color="#4779FE">
  Click here to learn more about Verified Credentials
</Card>
