← Cloudflare Pages / pages / functions / plugins
Turnstile
Turnstile je chytrá alternativa Cloudflare k CAPTCHA.
Turnstile Pages Plugin ověřuje tokeny Cloudflare Turnstile.
Instalace
npm i @cloudflare/pages-plugin-turnstilePouž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.