clerkMiddleware()
The clerkMiddleware() helper integrates Clerk authentication into your TanStack Start application through middleware.
Configure clerkMiddleware()
Create a src/start.ts file and add clerkMiddleware() to the requestMiddleware array.
import { clerkMiddleware } from '@clerk/tanstack-react-start/server'
import { createStart } from '@tanstack/react-start'
export const startInstance = createStart(() => {
  return {
    requestMiddleware: [clerkMiddleware()],
  }
})clerkMiddleware() options
The clerkMiddleware() function accepts an optional object. The following options are available:
- Name
- audience?
- Type
- string | string[]
- Description
- A string or list of audiences. If passed, it is checked against the - audclaim in the token.
 
- Name
- authorizedParties?
- Type
- string[]
- Description
- An allowlist of origins to verify against, to protect your application from the subdomain cookie leaking attack. For example: - ['http://localhost:3000', 'https://example.com']
 
- Name
- clockSkewInMs?
- Type
- number
- Description
- Specifies the allowed time difference (in milliseconds) between the Clerk server (which generates the token) and the clock of the user's application server when validating a token. Defaults to 5000 ms (5 seconds). 
 
- Name
- domain?
- Type
- string
- Description
- The domain used for satellites to inform Clerk where this application is deployed. 
 
- Name
- isSatellite?
- Type
- boolean
- Description
- When using Clerk's satellite feature, this should be set to - truefor secondary domains.
 
- Name
- jwtKey
- Type
- string
- Description
- Used to verify the session token in a networkless manner. Supply the JWKS Public Key from the API keys page in the Clerk Dashboard. It's recommended to use the environment variable instead. For more information, refer to Manual JWT verification. 
 
- Name
- organizationSyncOptions?
- Type
- OrganizationSyncOptions | undefined
- Description
- Used to activate a specific organization or personal account based on URL path parameters. If there's a mismatch between the in the session (e.g., as reported by auth()) and the organization indicated by the URL, the middleware will attempt to activate the organization specified in the URL. 
 
- Name
- proxyUrl?
- Type
- string
- Description
- Specify the URL of the proxy, if using a proxy. 
 
- Name
- signInUrl
- Type
- string
- Description
- The full URL or path to your sign-in page. Needs to point to your primary application on the client-side. Required for a satellite application in a development instance. It's recommended to use the environment variable instead. 
 
- Name
- signUpUrl
- Type
- string
- Description
- The full URL or path to your sign-up page. Needs to point to your primary application on the client-side. Required for a satellite application in a development instance. It's recommended to use the environment variable instead. 
 
- Name
- publishableKey
- Type
- string
- Description
- The Clerk Publishable Key for your instance. This can be found on the API keys page in the Clerk Dashboard. 
 
- Name
- secretKey?
- Type
- string
- Description
- The Clerk Secret Key for your instance. This can be found on the API keys page in the Clerk Dashboard. The - CLERK_ENCRYPTION_KEYenvironment variable must be set when providing- secretKeyas an option, refer to Dynamic keys.
 
Feedback
Last updated on