INTEGRITY Dokumentace

Otestujte svou implementaci Turnstile

K testování implementace Turnstile používejte testovací sitekey a tajné klíče, abyste nespouštěli skutečné výzvy, které by narušovaly automatizované testovací sady.

Automatizované testovací nástroje (například Selenium, Cypress nebo Playwright) vyhodnotí Turnstile jako boty, což může způsobit:

Dummy klíče to řeší tím, že vracejí předvídatelné, řízené odpovědi, se kterými si nástroje pro automatizované testování poradí.

Testovací klíče sitekey

Sitekey Chování Typ widgetu Případ použití
1x00000000000000000000AA Vždy projde Viditelný Otestujte úspěšné odeslání formuláře
2x00000000000000000000AB Vždy selže Viditelný Otestujte zpracování chyb a logiku opakování
1x00000000000000000000BB Vždy projde Invisible Otestujte úspěšné průchody u neviditelného widgetu
2x00000000000000000000BB Vždy selže Invisible Otestujte zpracování chyb u neviditelného widgetu
3x00000000000000000000FF Vynutí interaktivní výzvu Viditelný Otestujte scénáře interakce s uživatelem

Testovací tajné klíče

K testování ověřování na straně serveru použijte tyto tajné klíče:

Tajný klíč Chování Případ použití
1x0000000000000000000000000000000AA Ověření vždy projde Otestujte úspěšné ověření tokenu
2x0000000000000000000000000000000AA Ověření vždy selže Otestujte zpracování chyb při ověřování
3x0000000000000000000000000000000AA Vrátí chybu "token already spent" Otestujte zpracování duplicitního tokenu

Implementace

Lokální vývoj

Testovací klíče fungují na libovolné doméně, včetně:

Cloudflare doporučuje, aby sitekeys používané v produkci nepovolovaly lokální domény (localhost nebo 127.0.0.1), uživatelé si však mohou lokální domény přidat do seznamu povolených domén v části Správa hostname. Dummy sitekeys lze používat z libovolné domény, včetně localhost.

Testování na straně klienta

Produkční sitekey nahraďte testovacím sitekey.

<!-- Development/Testing -->
<div class="cf-turnstile" data-sitekey="1x00000000000000000000AA"></div>

<!-- Production -->
<div class="cf-turnstile" data-sitekey="your-real-sitekey"></div>

Testování na straně serveru

Produkční tajný klíč nahraďte testovacím tajným klíčem.

// Environment-based configuration
const SECRET_KEY = process.env.NODE_ENV === 'production' 
  ? process.env.TURNSTILE_SECRET_KEY 
  : '1x0000000000000000000000000000000AA';

// Use in validation
const validation = await validateTurnstile(token, SECRET_KEY);

Konfigurace prostředí

Pro každé prostředí nastavte samostatné klíče.


# .env.development
TURNSTILE_SITEKEY=1x00000000000000000000AA
TURNSTILE_SECRET_KEY=1x0000000000000000000000000000000AA

# .env.test  
TURNSTILE_SITEKEY=2x00000000000000000000AB
TURNSTILE_SECRET_KEY=2x0000000000000000000000000000000AA

# .env.production
TURNSTILE_SITEKEY=your-real-sitekey
TURNSTILE_SECRET_KEY=your-real-secret-key

Chování dummy tokenu

Generování tokenu

Testovací klíče sitekey generují fiktivní token: XXXX.DUMMY.TOKEN.XXXX

Ověření tokenu

Odpověď validace

Úspěšná odpověď
{
  "success": true,
  "challenge_ts": "2022-02-28T15:14:30.096Z",
  "hostname": "localhost",
  "error-codes": [],
  "action": "test",
  "cdata": "test-data"
}
Odpověď při neúspěchu
{
  "success": false,
  "error-codes": ["invalid-input-response"]
}
Token už byl uplatněn
{
  "success": false,
  "error-codes": ["timeout-or-duplicate"]
}

Testovací scénáře

Testovací klíč sitekey Testovací tajný klíč
Testovací případ
1x00000000000000000000AA 1x0000000000000000000000000000000AA Tato kombinace vždy skončí úspěšným ověřením.
2x00000000000000000000AB 2x0000000000000000000000000000000AA Tato kombinace vždy selže.
1x00000000000000000000AA 3x0000000000000000000000000000000AA Tato kombinace vždy selže s chybou "timeout-or-duplicate".