Verify Turnstile tokens on the server
mainTo validate a token on your Nitro server routes, you have two primary methods:
1. Use the verifyTurnstileToken helper
Import the auto-imported verifyTurnstileToken utility directly into your server route handler.
2. Use the built-in validation endpoint
Enable the endpoint in your nuxt.config.ts:
turnstile: {
siteKey: '<your-site-key>',
addValidateEndpoint: true
}Then, call /_turnstile/validate from your client-side code.
// server/api/validateTurnstile.ts
export default defineEventHandler(async (event) => {
const { token } = await readBody(event)
if (!token) {
throw createError({
statusCode: 422,
statusMessage: 'Token not provided.',
})
}
return await verifyTurnstileToken(token)
})