Migrate from Cloudflare Turnstile
The following tutorial will guide you on how to migrate from Cloudflare Turnstile to TrustCaptcha on your website.
Preparation
Section titled “Preparation”You should have already completed the following steps before you start to integrate TrustCaptcha into your website.
Read Get-Started: Get a quick overview of the concepts behind TrustCaptcha and the integration process in get started.
Existing CAPTCHA: If you don’t have a CAPTCHA yet, sign in or create a new user account. Then create a new CAPTCHA.
What changes when you move to TrustCaptcha
Section titled “What changes when you move to TrustCaptcha”Cloudflare Turnstile and TrustCaptcha both work with a simple idea: your frontend produces a token and your backend verifies it. The migration is mostly about replacing the frontend widget and updating the server-side verification.
In practice, you will:
- Remove the Turnstile JavaScript and the
cf-turnstilewidget container from your pages. - Add the TrustCaptcha dependency and the
<trustcaptcha-component>web component. - Replace the Turnstile token field (
cf-turnstile-response) with the TrustCaptcha token field (tc-verification-token). - Replace your server-side call to Cloudflare’s verification endpoint with TrustCaptcha result validation.
Migrate to TrustCaptcha
Section titled “Migrate to TrustCaptcha”Follow these steps to migrate from Cloudflare Turnstile to TrustCaptcha.
1. Remove Turnstile from your frontend
Section titled “1. Remove Turnstile from your frontend”In most Turnstile setups, you have two pieces that you need to remove:
- The Turnstile script tag, for example:
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>- The Turnstile container element, for example:
<div class="cf-turnstile" data-sitekey="<your_turnstile_site_key>"></div>If your code reads the Turnstile token from the form, you will usually see something like cf-turnstile-response. Remove that handling too (we will replace it with the TrustCaptcha token in the next steps).
2. Add TrustCaptcha to your frontend
Section titled “2. Add TrustCaptcha to your frontend”TrustCaptcha provides a web component called trustcaptcha-component. It must be placed inside a <form> element and needs a TrustCaptcha sitekey.
<script src="https://cdn.trustcomponent.com/trustcaptcha/2.1.x/trustcaptcha.umd.min.js"></script>
<form> <!-- your input fields -->
<trustcaptcha-component sitekey="<your_trustcaptcha_site_key>" ></trustcaptcha-component>
<!-- further input fields / submit button --></form>When TrustCaptcha completes, it automatically writes a hidden form field named tc-verification-token. You can also listen to the captchaSolved event if you want to send the token using JavaScript.
For detailed frontend integrations, use the guides below.
3. Replace the token you send to your backend
Section titled “3. Replace the token you send to your backend”With Turnstile, the token is typically submitted via the hidden form input cf-turnstile-response. With TrustCaptcha, the field is called tc-verification-token.
If you submit your form normally, you can usually just read the different field name on the server.
If you submit via JavaScript, this is a simple pattern:
<script> const trustcaptchaComponent = document.getElementsByTagName('trustcaptcha-component')[0];
trustcaptchaComponent.addEventListener('captchaSolved', (event) => { const verificationToken = event.detail; // Send verificationToken to your backend (e.g., JSON body). });</script>4. Replace server-side verification
Section titled “4. Replace server-side verification”With Turnstile, you typically call Cloudflare’s verification endpoint (siteverify) and check if the token is valid.
With TrustCaptcha, you retrieve the verification result from our API using:
- the
verification tokenfrom your frontend (tc-verification-token) - the TrustCaptcha
secret-key(from your CAPTCHA settings)
// Retrieving the verification resultlet verificationResult;try { verificationResult = await CaptchaManager.getVerificationResult("<your_secret_key>", "<verification_token_from_your_client>");} catch (error) { // Fetch verification result failed - handle error}Then you decide what to do based on the returned result (for example, verificationPassed and the score).
// Act on the verification result (sample)const threshold = 0.5;if (!verificationResult.verificationPassed || verificationResult.score > threshold) { console.log("Verification failed or bot score > 0.5 – possible automated request.");} else { console.log("Everything looks good - probably a human.");}Please follow the result validation overview, and (optionally) use one of the ready-made backend integrations.
Turnstile widget modes and how they map to TrustCaptcha
Section titled “Turnstile widget modes and how they map to TrustCaptcha”Cloudflare Turnstile offers three widget modes: Managed, Non-Interactive, and Invisible.
In TrustCaptcha, you typically have two ways to match your old behavior:
- Visible widget (most common): Use the default TrustCaptcha widget. It is a small box and runs automatically when the user interacts with the form.
- Invisible behavior: If you used Turnstile “Invisible” and want no visible widget at all, TrustCaptcha supports an invisible mode (
invisible="true"), but it requires a license key. See the widget overview for details and options likeinvisible-hint.
If you previously used custom callbacks like “success” / “error”, you can switch to the TrustCaptcha events captchaSolved and captchaFailed. If you used a reset button, you can call reset() on the TrustCaptcha component.
Next steps
Section titled “Next steps”Once you have successfully installed and configured TrustCaptcha on your website, you can use TrustCaptcha to its full extent. However, we still recommend the following additional technical and organizational measures:
Security rules: You can find many security settings for your CAPTCHA in the CAPTCHA settings. These include, for example, authorized websites, CAPTCHA bypass for specific IP addresses, bypass keys, IP based blocking, geoblocking, individual difficulty and duration of the CAPTCHA, and much more. Learn more about the security rules.
Data protection: Include a passage in your privacy policy that refers to the use of TrustCaptcha. We also recommend that you enter into a data processing agreement with us to stay GDPR-compliant. Learn more about data protection.
Accessibility: Customize TrustCaptcha to your website so that your website is as accessible as possible and offers the best possible user experience. More about accessibility.
Testing: If you use automated testing, make sure that the CAPTCHA does not block it. Learn more about testing.