← Cloudflare Turnstile / turnstile / troubleshooting
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:
- Testy selhávají, když Turnstile blokuje automatizované prohlížeče
- Nepředvídatelné výsledky testů kvůli různým variantám výzev
- Narušení testování odesílání formulářů
- Obtížné testování celých uživatelských toků
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ě:
localhost127.0.0.10.0.0.0- Libovolná vývojová doména
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-keyChování dummy tokenu
Generování tokenu
Testovací klíče sitekey generují fiktivní token: XXXX.DUMMY.TOKEN.XXXX
Ověření tokenu
- Testovací tajné klíče: přijímají pouze fiktivní token, skutečné tokeny odmítají.
- Produkční tajné klíče: přijímají pouze skutečné tokeny, fiktivní tokeny odmítají.
Odpověď validace
{
"success": true,
"challenge_ts": "2022-02-28T15:14:30.096Z",
"hostname": "localhost",
"error-codes": [],
"action": "test",
"cdata": "test-data"
}{
"success": false,
"error-codes": ["invalid-input-response"]
}{
"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". |