The Future of Web Dev
The Future of Web Dev
Secure Edge Authentication for 16+ Services – Nuxt Webhook Validators
Safeguard your Nuxt.js applications with nuxt-webhook-validators. Easily verify incoming webhooks from 16+ providers, including GitHub, Stripe, and more.

Nuxt Webhook Validators is a Nuxt module that helps you validate incoming webhooks from various services directly at the edge of your application.
It provides developers with a straightforward solution for webhook authentication, which helps protect your Nuxt.js applications from unauthorized webhook requests.
Features
🔒 Supports 16 webhook validators including GitHub, Stripe, PayPal, and more.
⚙️ Flexible configuration through runtime settings or environment variables.
📝 Easy integration with Nuxt server routes.
🚀 Edge-compatible for optimal performance and security.
🧰 Auto-imported server utilities for simplified implementation.
🔍 Boolean validation responses for straightforward security checks.
Use Cases
- Project Management Notifications: When tasks are updated in a project management tool, it sends webhooks to an internal dashboard. The module validates these webhooks, so only legitimate task updates are reflected in the dashboard.
- E-commerce Order Updates: An online store uses Stripe for payment processing. With
nuxt-webhook-validators, you can verify that payment notifications genuinely come from Stripe, preventing fraudulent order placements. - Content Management System (CMS) Integration: A blog uses Hygraph as its CMS. When content is published or updated, Hygraph sends a webhook. This module confirms these webhooks, ensuring that only legitimate content changes trigger rebuilds of the static site.
- CI/CD Pipeline Automation: A development team relies on GitHub webhooks to trigger deployments.
nuxt-webhook-validatorscan verify that push events to the repository are authentic, preventing unauthorized code from being deployed. - Social Media Interaction Handling: Your application receives notifications from Twitch when a streamer goes live. Using this module, you could make sure that those notifications are truly from Twitch’s servers.
Installation
To get started with nuxt-webhook-validators, you need a Nuxt server environment (nuxt build). This module is not compatible with nuxt generate.
- Add the module to your Nuxt project:
npx nuxi@latest module add webhook-validators - Include the module in your
nuxt.config.ts:export default defineNuxtConfig({ modules: [ 'nuxt-webhook-validators' ], })
Usage
The validator helpers are globally exposed and available for use in your server API routes.
Configure the validators directly in your nuxt.config.ts using runtimeConfig:
export default defineNuxtConfig({
runtimeConfig: {
webhook: {
github: { // Example for GitHub
secret: 'your-github-webhook-secret'
}
// Add other providers as needed
}
}
})Or, use environment variables:
NUXT_WEBHOOK_GITHUB_SECRET="your-github-webhook-secret"Here’s how to validate a GitHub webhook in a server API route (~/server/api/webhooks/github.post.ts):
export default defineEventHandler(async (event) => {
const isValidWebhook = await isValidGitHubWebhook(event);
if (!isValidWebhook) {
throw createError({ statusCode: 401, message: 'Unauthorized: webhook is not valid' });
}
// Your logic here...
return { isValidWebhook };
})Supported webhook validators include Discord, Dropbox, GitHub, GitLab, Heroku, Hygraph, Kick, Meta, NuxtHub, Paddle, PayPal, Polar, Resend, Stripe, Svix, and Twitch.
FAQs
Q: What is a webhook?
A: A webhook is an HTTP-based callback function that allows one system to notify another system about events in real time. It’s essentially a way for applications to “talk” to each other when something happens.
Q: Why do I need to validate webhooks?
A: Validating webhooks ensures that the requests your server receives are genuinely from the expected source. This process prevents malicious actors from sending fake requests that could compromise your application.
Q: Can I use this module with static Nuxt sites?
A: No, this module requires a server-side Nuxt application. It will not work with sites generated using nuxt generate as it needs server API routes to function.
Q: How do I add support for a webhook provider not included in the module?
A: You can create a custom validator by adding a new file in the src/runtime/server/lib/validators/ directory following the pattern of existing validators.





