INTEGRITY Dokumentace

Turnstile

Turnstile je chytrá alternativa Cloudflare k CAPTCHA.

Turnstile Pages Plugin ověřuje tokeny Cloudflare Turnstile.

Instalace

npm i @cloudflare/pages-plugin-turnstile

Použití

import turnstilePlugin from "@cloudflare/pages-plugin-turnstile";

/**
 * POST /api/submit-with-plugin
 */

export const onRequestPost = [
	turnstilePlugin({
		// This is the demo secret key. In prod, we recommend you store
		// your secret key(s) safely.
		secret: "0x4AAAAAAASh4E5cwHGsTTePnwcPbnFru6Y",
	}),
	// Alternatively, this is how you can use a secret key which has been stored as an environment variable
	// (async (context) => {
	//   return turnstilePlugin({secret: context.env.SECRET_KEY})(context)
	// }),
	async (context) => {
		// Request has been validated as coming from a human
		const formData = await context.request.formData();
		// Additional solve metadata data is available at context.data.turnstile
		return new Response(
			`Successfully verified! ${JSON.stringify(context.data.turnstile)}`,
		);
	},
];

Tento Plugin zpřístupňuje pouze jednu trasu pro ověření příchozí odpovědi Turnstile v POST jako cf-turnstile-response parametr. Bude dostupný všude tam, kde je připojen. Ve výše uvedeném příkladu je připojen v functions/register.ts. Výsledkem je, že bude ověřovat požadavky na /register.

Vlastnosti

Plugin se připojuje pomocí jediného parametru typu objekt s následujícími vlastnostmi:

secret je povinný a obě hodnoty najdete ve svém Turnstile dashboardu.

response a remoteip jsou volitelné řetězce. response je token Turnstile, který se má ověřit. Pokud není zadaný, plugin ve výchozím nastavení extrahuje cf-turnstile-response hodnotu z multipart/form-data požadavek). remoteip je IP adresa žadatele. Výchozí hodnotou je CF-Connecting-IP hlavičky požadavku.

onError je volitelná funkce, která přijímá kontextový objekt Pages Function a vrací Promise z Response. Ve výchozím nastavení vrátí chybu čitelnou pro člověka Response.

context.data.turnstile se naplní v následujících Pages Functions (mimo jiné pro onError funkci) s objekt odpovědi Turnstile Siteverify.