Handling requests with Node.js and Express
Node.js and Connect/Express Middleware
The Clerk Node SDK offers two authentication middlewares specifically for Express and Connect/Express compatible frameworks such as Gatsby and Fastify.
ClerkExpressWithAuth()
ClerkExpressWithAuth()
is a lax middleware that returns an empty auth object when an unauthenticated request is made.
ClerkExpressRequireAuth()
ClerkExpressRequireAuth()
is a strict middleware that raises an error when an unauthenticated request is made.
Express error handlers
Express comes with a default error handler for errors encountered in the middleware chain.
Developers can also implement their own custom error handlers as detailed in the Express error handling guide. An example error handler can be found above.
If you are using the strict middleware variant, the err
passed to your error handler will contain enough context for you to respond as you deem fit.
Middleware options
These options can be used with both ClerkExpressWithAuth
and ClerkExpressRequireAuth
.
- Name
audience
- Type
string | string[]
- Description
A string or list of audiences. If passed, it is checked against the
aud
claim in the token.
- Name
authorizedParties
- Type
string[]
- Description
Can be used to validate that the
azp
claim equals any of your known origins that are permitted to generate those tokens. This is an extra security check that we highly recommend that you do. For more information, refer to Manual JWT Verification.
An example of the value you can pass is:['http://localhost:4003', 'https://clerk.dev']
- Name
jwtKey
- Type
string
- Description
Clerk's JWT session token can be verified in a networkless manner using the JWT verification key. By default, Clerk will use our well-known JWKs endpoint to fetch and cache the key for any subsequent token verification. If you use the
CLERK_JWT_KEY
environment variable or thejwtKey
option to supply the key, Clerk will pick it up and do networkless verification for session tokens using it. For more information, refer to Networkless Token Verification.
- Name
onError
- Type
(error: ClerkAPIResponseError) => unknown
- Description
This function can act as a custom error handler tailored to the needs of your application.
- Name
signInUrl
- Type
string
- Description
The URL to redirect to when the user is not authenticated.
| isSatellite
| boolean \| (url: URL) => boolean
| When using Clerk's satellite feature, this should be enabled for secondary domains. |
| domain
| string \| (url: URL) => boolean
| The domain used for satellites to inform Clerk where this application is deployed. |
| proxyUrl
| string
| If using a proxy, specify the URL of the proxy. |
Feedback
Last updated on