Cross-origin requests
If your client and server are on different origins (e.g. making an API call to a server on api.foo.com
from JavaScript running on a client at foo.com
), the session token needs to be passed in a network request header. There are a few different ways this can be done on the front-end.
Using Fetch with React
In order to pass the session token using the browser Fetch API, it should be put inside a Bearer token in the Authorization header. To retrieve the session token, use the getToken
method from the useAuth()
hook. Be mindful that getToken
is an async function that returns a Promise which needs to be resolved.
useSWR hook
If you are using React or Next.js and want to use the useSWR
hook, you can create a custom hook by utilizing Clerk's useAuth()
hook. useAuth()
returns the asynchronous getToken
function that can be called to add the session token as a Bearer token in the Authorization header of requests.
Tanstack Query (React Query)
If you are using Tanstack Query, you need to use a query function that throws errors. Since the native Fetch API does not, you can add it in.
Using Fetch with ClerkJS
If you are not using React or Next.js, you can access the getToken
method from the session
property of the Clerk
object. This assumes you have already followed the instructions on setting up ClerkJS and provided it with your Frontend API URL.
Feedback
Last updated on