Minor Changes
-
Introduce a
verifyWebhook()function to verify incoming Clerk webhook requests and process the payload. This function handles webhook signature verification usingSvixand is now available across all backend and fullstack SDKs. (#5468) by @wobsorianoTo get started, install
svix, which Clerk uses to verify its webhooks:npm install svix
Then in your webhook route handler, import
verifyWebhook()from the Fastify SDK:import { verifyWebhook } from '@clerk/fastify/webhooks'; fastify.post('/api/webhooks', async (request, reply) => { try { const evt = await verifyWebhook(request); // Do something with payload const { id } = evt.data; const eventType = evt.type; console.log(`Received webhook with ID ${id} and event type of ${eventType}`); console.log('Webhook payload:', evt.data); return reply.status(200).send('Webhook received'); } catch (err) { console.log('Error: Could not verify webhook:', err); return reply.status(400).send('Error: Verification error'); } });
For more information on how to sync Clerk data to your app with webhooks, see our guide.