Breadcrumbs

User SDK

Learn how to use the User SDK to interact with the current user


The User SDK allows you to interact with the current user. Here we list the methods available in the User SDK.

The example below work within a Server Components: by using the required client, you can easily adapt the code examples below to both Server Actions and Route Handlers.

The User SDK is namespaced under sdk.user - so all the methods below are available under sdk.user.

Get the current user

To get the current user, use the sdk.user.getCurrent() method:

tsinterface UserData {
  displayName: string | null;
  photoUrl: string | null;
 
  // your custom fields...
}

This method wraps the Supabase auth.getUser() function.

Get the current user's session

To get the current session, use the sdk.user.getCurrentSession() method:

tsimport getSdk from '~/lib/sdk';
import getSupabaseServerComponentClient from '~/core/supabase/server-component-client';
 
async function PageServerComponent() {
  const client = getSupabaseServerComponentClient();
  const sdk = getSdk(client);
  const data = await sdk.user.getData();
 
  // ...
}

This method wraps the Supabase auth.getSession() function.

Get the current user's ID

To get the current user's ID, use the sdk.user.getCurrentId() method:

tsimport getSdk from '~/lib/sdk';
import getSupabaseServerComponentClient from '~/core/supabase/server-component-client';
 
async function PageServerComponent() {
  const client = getSupabaseServerComponentClient();
  const sdk = getSdk(client);
  const userId = await sdk.user.getCurrentId();
 
  // ...
}

Get the current user's Database profile

We store the user's record data in the database table users. To get the current user's profile data, use the sdk.user.getData() method:

tsimport getSdk from '~/lib/sdk';
import getSupabaseServerComponentClient from '~/core/supabase/server-component-client';
 
async function PageServerComponent() {
  const client = getSupabaseServerComponentClient();
  const sdk = getSdk(client);
  const session = await sdk.user.getCurrentSession();
 
  // ...
}

The data object will contain the user's profile data.

tsimport getSdk from '~/lib/sdk';
import getSupabaseServerComponentClient from '~/core/supabase/server-component-client';
 
async function PageServerComponent() {
  const client = getSupabaseServerComponentClient();
  const sdk = getSdk(client);
  const user = await sdk.user.getCurrent();
 
  // ...
}

It's very likely that you'll be adding more fields, so this interface may change.