<div dir="ltr"><div>I did this last year:</div><div><br></div><div>-----------------------</div><div><br></div><div>With the CloudFlare <span class="gmail-il">Turnstile</span> Site Key (as recaptchaPublicKey), Secret Key (as recaptchaPrivateKey) and using "?compat=recaptcha", the following seems to work.</div><div><br></div>/opt/<span class="gmail-il">zendto</span>/templates/header.tpl<div>43,44c43,44<br></div><div><             grecaptcha.render('google-recaptcha', {<br><               'sitekey' : '{$recaptchaSiteKey}'<br>---<br>>             grecaptcha.render('cf-<span class="gmail-il">turnstile</span>', {<br>>             'sitekey' : '{$recaptchaSiteKey}'<br>51c51,52<br><         <script src="<a href="https://www.recaptcha.net/recaptcha/api.js?hl=%7B$recaptchaLang%7D" target="_blank">https://www.recaptcha.net/recaptcha/api.js?hl={$recaptchaLang}</a>" async defer></script><br>---<br>> <!--        <script src="<a href="https://www.recaptcha.net/recaptcha/api.js?hl=%7B$recaptchaLang%7D" target="_blank">https://www.recaptcha.net/recaptcha/api.js?hl={$recaptchaLang}</a>" async defer></script> --><br>>       <script src="<a href="https://challenges.cloudflare.com/turnstile/v0/api.js?compat=recaptcha" target="_blank">https://challenges.cloudflare.com/<span class="gmail-il">turnstile</span>/v0/api.js?compat=recaptcha</a>" async defer></script><br>53c54,55<br><         <script src="<a href="https://www.recaptcha.net/recaptcha/api.js?hl=%7B$recaptchaLang%7D&onload=onloadCallback&render=explicit" target="_blank">https://www.recaptcha.net/recaptcha/api.js?hl={$recaptchaLang}&onload=onloadCallback&render=explicit</a>" async defer></script><br>---<br>> <!--        <script src="<a href="https://www.recaptcha.net/recaptcha/api.js?hl=%7B$recaptchaLang%7D&onload=onloadCallback&render=explicit" target="_blank">https://www.recaptcha.net/recaptcha/api.js?hl={$recaptchaLang}&onload=onloadCallback&render=explicit</a>" async defer></script> --><br>>       <script src="<a href="https://challenges.cloudflare.com/turnstile/v0/api.js?compat=recaptcha" target="_blank">https://challenges.cloudflare.com/<span class="gmail-il">turnstile</span>/v0/api.js?compat=recaptcha</a>" async defer></script><br><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><br></div><div>/opt/<span class="gmail-il">zendto</span>/templates/pickupcheck.tpl</div><div>29c29,30<br></div><div><                 <div id="google-recaptcha" name="google-recaptcha"></div><br>---<br>> <!--                <div id="google-recaptcha" name="google-recaptcha"></div> --><br>>               <div class="cf-<span class="gmail-il">turnstile</span>" data-sitekey="{$recaptchaSiteKey}" data-callback="javascriptCallback"></div><br></div><div><br></div><div>/opt/<span class="gmail-il">zendto</span>/templates/verify.tpl</div><div>155c155,156<br></div><div><                 <div id="google-recaptcha" name="google-recaptcha"></div><br>---<br>> <!--                <div id="google-recaptcha" name="google-recaptcha"></div> --><br>>               <div class="cf-<span class="gmail-il">turnstile</span>" data-sitekey="{$recaptchaSiteKey}" data-callback="javascriptCallback"></div><br></div><div><br></div><div>/opt/<span class="gmail-il">zendto</span>/www/ReCaptcha/RequestMethod/CurlPost.php</div><div>43,44c43,44<br></div><div><span class="gmail-im" style="color:rgb(80,0,80)"><     const SITE_VERIFY_URL = '<a href="https://www.recaptcha.net/recaptcha/api/siteverify" target="_blank">https://www.recaptcha.net/recaptcha/api/siteverify</a>';<br><<br></span>---<br>> //    const SITE_VERIFY_URL = '<a href="https://www.recaptcha.net/recaptcha/api/siteverify" target="_blank">https://www.recaptcha.net/recaptcha/api/siteverify</a>';<br>>     const SITE_VERIFY_URL = '<a href="https://challenges.cloudflare.com/turnstile/v0/siteverify" target="_blank">https://challenges.cloudflare.com/<span class="gmail-il">turnstile</span>/v0/siteverify</a>';<br></div><div><br></div></div></div></div></div></div></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><br>Kris Lou<br><a href="mailto:klou@themusiclink.net" target="_blank">klou@themusiclink.net</a></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 13, 2024 at 9:19 AM Ricky Boone via ZendTo <<a href="mailto:zendto@zend.to">zendto@zend.to</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">My apologies if this has already been covered, however I couldn't find<br>
anything other than a single email in the list archive that didn't<br>
appear to be addressed.<br>
<br>
The users of the instance of ZendTo that I maintain sometimes have<br>
issues with reCAPTCHA.  In almost all cases, it's either user-oriented<br>
or an issue with their browser causing them to never get past it, with<br>
the very rare case of an issue on Google's end.  I'd still like some<br>
reasonable mechanism to perform human verification to reduce the risk<br>
posed without it, however it looks like the only options available are<br>
either Google's standard or invisible reCAPTCHA v2 services, with the<br>
"invisible" option having noted issues since 2018 (at least in the<br>
config comments).<br>
<br>
So I don't start going down a path that is already underway, are there<br>
any plans to implement support for other CAPTCHA services/libraries,<br>
such as Cloudflare's Turnstyle or hCaptcha?  If not, are there any<br>
concerns with me taking a stab at it and providing what I come up<br>
with?  I realize that ZendTo is not being tracked on a public source<br>
code repo like Github or GitLab (at least officially, as far as I can<br>
tell), but I didn't want to do something that couldn't be contributed<br>
back in some way.<br>
<br>
_______________________________________________<br>
ZendTo mailing list<br>
<a href="mailto:ZendTo@zend.to" target="_blank">ZendTo@zend.to</a><br>
<a href="http://jul.es/mailman/listinfo/zendto" rel="noreferrer" target="_blank">http://jul.es/mailman/listinfo/zendto</a><br>
</blockquote></div>