Chyba šablony:
ReCaptcha |
#387 |
ReCaptcha je mechanismus, který (zejména) u webových formulářů ověřuje, zda ten, kdo formulář odesílá, je opravdu živý člověk a nikoli robot. Nasazení reCaptcha výrazně snižuje množství přicházejícího spamu.
Registrace na Google
- Správa reCaptcha se provádí na https://www.google.com/recaptcha; nahoře je tlačítko Admin console.
- Musíte být přihlášení Google účtem.
- Je podporována pouze verze 3.
- Již existující registrace lze spravovat na https://www.google.com/recaptcha/admin
Po registraci domény vznikne dvojice klíčů: site-key
a
secret-key
, které budeme používat.
Aktivace na webové stránce
Obvykle se reCaptcha používá pouze na stránkách, kde je nějaký formulář; typicky stránka Kontakty.
Obsah stránky, kde má captcha fungovat, musí obsahovat nastavení klíčů:
{{setParams;recaptcha-v3-site-key:6Lch1......qX2}}
{{setParams;recaptcha-v3-secret-key:6Lch1......q6P}}
Úspěšnou aktivaci poznáme podle loga reCaptcha vpravo dole na stránkce.
Implementace do vlastní šablony
V <head>
stránky musí být link na javascript
zajišťující validaci. Před koncem <body>
musí být
vlastní javascriptový kód validace.
Toho dosáhneme úpravou page-web.mustache
.
Rozšíření <head>
:
{{#page.params.recaptcha-v3-site-key]}}<script src='https://www.google.com/recaptcha/api.js?render={{page.params.recaptcha-v3-site-key}}'></script>{{/page.params.recaptcha-v3-site-key}}
Rozšíření <body>
:
{{#page.params.recaptcha-v3-site-key}}
<script>
$('form').show();
$('form').submit(function(event) {
event.preventDefault();
grecaptcha.ready(function() {
grecaptcha.execute('{{page.params.recaptcha-v3-site-key}}', {action: 'contact_form'}).then(function(token) {
var recaptchaResponse = document.getElementById('recaptcha-response');
recaptchaResponse.value = token;
$('form').unbind('submit').submit();
});
});
});
</script>
{{/page.params.recaptcha-v3-site-key}}