FeaturesAuthentication
PreviousNext

Retrieve User

Access authenticated user data on server and client.

What It Does

Shows recommended patterns to retrieve the authenticated user from the app database and expose it client-side.

When To Use

  • Building private pages and layouts.
  • Needing user data in client components.

Prerequisites

  • Auth integration completed.

How To Use

Server-side user retrieval

import { getDBClient } from '@kit/shared/server/get-db-client';
 
const db = await getDBClient();
const user = await db.user.require();

Provide user context to client components

import { UserProvider } from '@kit/auth/shared/user';
 
<UserProvider user={user}>{children}</UserProvider>

Read user in client component

'use client';
 
import { useUser } from '@kit/auth/shared/user';
 
export function UserBadge() {
  const user = useUser();
  return <span>{user.name}</span>;
}

MCP Context

capability: auth_user_access
entrypoints:
  - @kit/shared/server/get-db-client
  - @kit/auth/shared/user (UserProvider, useUser)
inputs:
  - authenticated_request_context
outputs:
  - current_user_record
constraints:
  - use app user table abstraction (`db.user.*`)
side_effects:
  - none

Agent Recipe

  1. Fetch user in server layout/page.
  2. Redirect if auth/onboarding conditions are not met.
  3. Wrap subtree with UserProvider and consume with useUser.

Troubleshooting

  • useUser errors usually mean missing UserProvider upstream.
  • db.user.require() throwing means auth session is missing/invalid.

How is this guide?

Last updated on 3/23/2026