Skip to main content

Imports

import {
  authenticateRequest,
  getAuth,
  requireAuth,
  wachtClient,
  createWachtServerClient,
} from '@wacht/react-router/server'

authenticateRequest(request, options?)

Returns:
{ auth: WachtAuth, headers: Headers }
headers may include session/auth synchronization updates. You must forward them in your response.

Loader/action pattern

const { auth, headers } = await authenticateRequest(request, {
  publishableKey: process.env.WACHT_PUBLISHABLE_KEY,
})

if (!auth.userId) throw redirect('/sign-in', { headers })
return json(data, { headers })

getAuth and requireAuth

  • getAuth: read auth state
  • requireAuth: enforce sign-in by running protect()

Backend client

const client = await wachtClient()
For explicit/named instances:
const client = createWachtServerClient({
  apiKey: process.env.WACHT_API_KEY,
  name: 'jobs',
})