Why sites move off Turnstile
Turnstile is free and often invisible, so the reasons to move off it are narrower than with a puzzle CAPTCHA.
Turnstile gets its token when the page loads. Challenge runs its check fresh on each Send, so there is no token to expire while someone fills in a long form.
The free plan allows 20 widgets, 10 hostnames for each, and keeps Cloudflare's branding on the widget.
And Turnstile only answers whether the browser looks like a person. Spam a person types still arrives. Botpoison puts Classify for that on the same plan.
What maps to what
- Script
- Turnstile
/turnstile/v0/api.json challenges.cloudflare.com - Challenge
unpkg.com/@botpoison/browser
- On the form
- TurnstileA
cf-turnstilediv withdata-sitekey - Challenge
data-botpoison-public-keyon the form itself
- Field posted
- Turnstile
cf-turnstile-response - Challenge
_botpoison
- Server check
- TurnstilePOST to
/turnstile/v0/siteverifywith the secret and the response - ChallengeThe same form POSTed to
/verify, withsecretKeyandsolution
- Result
- Turnstile
success, with theactionandcdatathe widget carried - Challenge
ok, true or false
| Turnstile | Challenge | |
|---|---|---|
| Script | /turnstile/v0/api.js on challenges.cloudflare.com | unpkg.com/@botpoison/browser |
| On the form | A cf-turnstile div with data-sitekey | data-botpoison-public-key on the form itself |
| Field posted | cf-turnstile-response | _botpoison |
| Server check | POST to /turnstile/v0/siteverify with the secret and the response | The same form POSTed to /verify, with secretKey and solution |
| Result | success, with the action and cdata the widget carried | ok, true or false |